aboutsummaryrefslogtreecommitdiffstats
path: root/modules/networking/usque/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/networking/usque/default.nix')
-rw-r--r--modules/networking/usque/default.nix30
1 files changed, 26 insertions, 4 deletions
diff --git a/modules/networking/usque/default.nix b/modules/networking/usque/default.nix
index b8c25ee..9d04ab7 100644
--- a/modules/networking/usque/default.nix
+++ b/modules/networking/usque/default.nix
@@ -5,6 +5,24 @@
lib,
...
}:
+let
+ inherit ((import ../../lib/script.nix { inherit lib pkgs; })) mkScriptModule;
+ usqueWarp = mkScriptModule {
+ scope = [
+ "networking"
+ "usque"
+ ];
+ name = "usque-warp";
+ path = ./usque-warp.sh;
+ description = "Connect/disconnect to Cloudflare WARP via usque MASQUE tunnel";
+ deps = [
+ config.networking.usque.package
+ pkgs.bash
+ ];
+ completion.zsh = builtins.readFile ./usque-warp.zsh;
+ inherit config;
+ };
+in
{
options.networking.usque = {
enable = lib.mkEnableOption "Enables usque.";
@@ -13,9 +31,13 @@
default = pkgs.usque;
description = "The usque package to use.";
};
- };
+ }
+ // usqueWarp.options.networking.usque;
- config = lib.mkIf config.networking.usque.enable {
- home.packages = [ config.networking.usque.package ];
- };
+ config = lib.mkMerge [
+ (lib.mkIf config.networking.usque.enable {
+ home.packages = [ config.networking.usque.package ];
+ })
+ usqueWarp.config
+ ];
}