From 335424a3ec9aa5858d8a6eb677890ec55b4e608b Mon Sep 17 00:00:00 2001 From: lelgenio Date: Mon, 15 Feb 2021 23:07:41 -0300 Subject: [PATCH] use namespacing for for function names --- completion/dotdrop.fish | 89 ++++++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/completion/dotdrop.fish b/completion/dotdrop.fish index d8e3b73..cefd0af 100644 --- a/completion/dotdrop.fish +++ b/completion/dotdrop.fish @@ -8,25 +8,25 @@ set commands\ # Aliases to avoid walls of text # -function comp_sub +function __fish_dotdrop_comp_sub complete -f -c dotdrop\ -n "not __fish_seen_subcommand_from $commands"\ $argv end -function comp_opt -a "command" +function __fish_dotdrop_comp_opt -a "command" complete -c dotdrop\ -n "__fish_seen_subcommand_from $command"\ $argv[2..-1] end -function list_profiles +function __fish_dotdrop_list_profiles dotdrop profiles \ --grepable \ --no-banner \ 2> /dev/null end -function list_test_keys -a "test_arg" +function __fish_dotdrop_list_test_keys -a "test_arg" # Return only dotdrop keys in which the src field matches a test(1) criteria # ^⌣ ^ ← "Slide Time!!" dotdrop files \ @@ -46,124 +46,129 @@ end # Complete subcommands # -comp_sub -k -a "profiles" -d "List available profiles" -comp_sub -k -a "detail" -d "List managed dotfiles details" -comp_sub -k -a "files" -d "List managed dotfiles" -comp_sub -k -a "remove" -d "Remove a managed dotfile" -comp_sub -k -a "update" -d "Update a managed dotfile" -comp_sub -k -a "compare" -d "Compare your local dotfiles with managed dotfiles" -comp_sub -k -a "import" -d "Import dotfiles into dotdrop" -comp_sub -k -a "install" -d "Install dotfiles" +__fish_dotdrop_comp_sub -k -a "profiles" -d "List available profiles" +__fish_dotdrop_comp_sub -k -a "detail" -d "List managed dotfiles details" +__fish_dotdrop_comp_sub -k -a "files" -d "List managed dotfiles" +__fish_dotdrop_comp_sub -k -a "remove" -d "Remove a managed dotfile" +__fish_dotdrop_comp_sub -k -a "update" -d "Update a managed dotfile" +__fish_dotdrop_comp_sub -k -a "compare" -d "Compare your local dotfiles with managed dotfiles" +__fish_dotdrop_comp_sub -k -a "import" -d "Import dotfiles into dotdrop" +__fish_dotdrop_comp_sub -k -a "install" -d "Install dotfiles" # Lone options # -comp_sub -s h -l help -comp_sub -s v -l version +__fish_dotdrop_comp_sub -s h -l help +__fish_dotdrop_comp_sub -s v -l version # Common options to all subcommands # -comp_opt "$commands"\ +__fish_dotdrop_comp_opt "$commands"\ -s V -l Verbose\ -d "Show version" -comp_opt "$commands"\ +__fish_dotdrop_comp_opt "$commands"\ -s b -l no-banner\ -d "Do not display the banner" -comp_opt "$commands"\ +__fish_dotdrop_comp_opt "$commands"\ -rF -s c -l cfg\ -d "Path to the config" # Subcommand specific options # -comp_opt "install import update remove detail"\ +__fish_dotdrop_comp_opt "install import update remove detail"\ -s f -l force\ -d "Do not ask user confirmation for anything" -comp_opt "install import update remove"\ +__fish_dotdrop_comp_opt "install import update remove"\ -s d -l dry\ -d "Dry run" -comp_opt "update remove"\ +__fish_dotdrop_comp_opt "update remove"\ -s k -l key\ -d "Treat as a dotfile key" -comp_opt "files"\ +__fish_dotdrop_comp_opt "files"\ -s T -l template\ -d "Only template dotfiles" -comp_opt "install"\ +__fish_dotdrop_comp_opt "install"\ -s t -l temp\ -d "Install to a temporary directory for review" -comp_opt "install"\ +__fish_dotdrop_comp_opt "install"\ -s n -l nodiff\ -d "Do not diff when installing" -comp_opt "install"\ +__fish_dotdrop_comp_opt "install"\ -s D -l showdiff\ -d "Show a diff before overwriting" -comp_opt "install"\ +__fish_dotdrop_comp_opt "install"\ -s a -l force-actions\ -d "Execute all actions even if no dotfile is installed" -comp_opt "update"\ +__fish_dotdrop_comp_opt "update"\ -s P -l show-patch\ -d "Provide a one-liner to manually patch template" -comp_opt "files profiles"\ +__fish_dotdrop_comp_opt "files profiles"\ -s G -l grepable\ -d "Grepable output" # Command specific options with parameters # -comp_opt "install import compare update remove files detail"\ - -x -s p -l profile\ - -d "Specify the profile to use [default: "(uname -n)"]"\ - -a "(list_profiles)" -comp_opt "compare update"\ +if test -z "$DOTDROP_PROFILE" + set -l DOTDROP_PROFILE (uname -n) +end + +__fish_dotdrop_comp_opt "install import compare update remove files detail"\ + -x -s p -l profile\ + -d "Specify the profile to use [default: $DOTDROP_PROFILE]"\ + -a "(__fish_dotdrop_list_profiles)" + +__fish_dotdrop_comp_opt "compare update"\ -x -s i -l ignore\ -d "Pattern to ignore" -comp_opt "compare"\ +__fish_dotdrop_comp_opt "compare"\ -rF -s C -l file\ -d "Path of dotfile to compare" -comp_opt "import"\ +__fish_dotdrop_comp_opt "import"\ -rf -s l -l link\ -a "nolink link link_children"\ -d "Link option" -comp_opt "import"\ +__fish_dotdrop_comp_opt "import"\ -rF -s s -l as\ -d "Import as a different path from actual path" # Subcommand arguments # -comp_opt "import"\ +__fish_dotdrop_comp_opt "import"\ -rF -comp_opt "update"\ +__fish_dotdrop_comp_opt "update"\ -F -comp_opt "remove"\ +__fish_dotdrop_comp_opt "remove"\ -F -comp_opt "install detail"\ +__fish_dotdrop_comp_opt "install detail"\ -f\ -d "File"\ - -a "(list_test_keys -f)" + -a "(__fish_dotdrop_list_test_keys -f)" -comp_opt "install detail"\ +__fish_dotdrop_comp_opt "install detail"\ -f\ -d "Directory"\ - -a "(list_test_keys -d)" + -a "(__fish_dotdrop_list_test_keys -d)" # dotdrop.sh #