From d9fd3dce7ab14dadcd6baa4b5a0eabd8d711e5e3 Mon Sep 17 00:00:00 2001 From: Gary Guo Date: Sat, 14 Dec 2024 15:56:32 +0000 Subject: [PATCH] nixos-firewall-tool: add shell completions for bash and fish --- .../nixos-firewall-tool.bash | 20 +++++++++++++++++++ .../nixos-firewall-tool.fish | 5 +++++ .../ni/nixos-firewall-tool/package.nix | 1 + 3 files changed, 26 insertions(+) create mode 100644 pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.bash create mode 100644 pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.fish diff --git a/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.bash b/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.bash new file mode 100644 index 000000000000..440ffeac9cf9 --- /dev/null +++ b/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.bash @@ -0,0 +1,20 @@ +_nixos_firewall_tool() { + case "${COMP_CWORD}" in + 1) + COMPREPLY=($(compgen -W "open show reset" -- "${COMP_WORDS[1]}")) + ;; + 2) + case "${COMP_WORDS[1]}" in + "open") + COMPREPLY=($(compgen -W "tcp udp" -- "${COMP_WORDS[2]}")) + ;; + *) + ;; + esac + ;; + *) + ;; + esac +} + +complete -F _nixos_firewall_tool nixos-firewall-tool diff --git a/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.fish b/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.fish new file mode 100644 index 000000000000..0cd8a61b13c8 --- /dev/null +++ b/pkgs/by-name/ni/nixos-firewall-tool/nixos-firewall-tool.fish @@ -0,0 +1,5 @@ +complete -c nixos-firewall-tool -f +complete -c nixos-firewall-tool -k -a reset -d 'Reset firewall configuration to system settings' -n "__fish_is_first_token" +complete -c nixos-firewall-tool -k -a show -d 'Show all firewall rules' -n "__fish_is_first_token" +complete -c nixos-firewall-tool -k -a open -d 'Open a port temporarily' -n "__fish_is_first_token" +complete -c nixos-firewall-tool -k -a "tcp udp" -n "__fish_seen_subcommand_from open && __fish_is_nth_token 2" diff --git a/pkgs/by-name/ni/nixos-firewall-tool/package.nix b/pkgs/by-name/ni/nixos-firewall-tool/package.nix index eda737f0f98d..6e9f931403fd 100644 --- a/pkgs/by-name/ni/nixos-firewall-tool/package.nix +++ b/pkgs/by-name/ni/nixos-firewall-tool/package.nix @@ -24,6 +24,7 @@ stdenvNoCC.mkDerivation rec { installPhase = '' installBin nixos-firewall-tool + installShellCompletion nixos-firewall-tool.{bash,fish} ''; # Skip shellcheck if GHC is not available, see writeShellApplication.