diff options
Diffstat (limited to 'modules/networking/usque/default.nix')
| -rw-r--r-- | modules/networking/usque/default.nix | 30 |
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 + ]; } |
