Funcsave with --directory option (#7041)
* funcsave: add option --directory Signed-off-by: Donovan Jean <commit@dkrm.dev> * funcsave: fix synopsis Signed-off-by: Donovan Jean <commit@dkrm.dev> * funcsave: fix completion Signed-off-by: Donovan Jean <commit@dkrm.dev> * funcsave: fix error message Signed-off-by: Donovan Jean <commit@dkrm.dev> * funcsave: fix parameter expansion Signed-off-by: Donovan Jean <commit@dkrm.dev>
This commit is contained in:
parent
fb57a98aef
commit
bc2eb383d4
@ -9,6 +9,7 @@ Synopsis
|
||||
::
|
||||
|
||||
funcsave FUNCTION_NAME
|
||||
funcsave [(-d | --directory) where/to/save ] FUNCTION_NAME
|
||||
|
||||
|
||||
Description
|
||||
|
@ -1 +1,2 @@
|
||||
complete -c funcsave -xa "(functions -na)" -d "Save function"
|
||||
complete -c funcsave -s d -l directory -d "Directory to save the functions" -a '$fish_function_path' -r
|
||||
|
@ -1,5 +1,5 @@
|
||||
function funcsave --description "Save the current definition of all specified functions to file"
|
||||
set -l options h/help
|
||||
set -l options 'h/help' 'd/directory='
|
||||
argparse -n funcsave $options -- $argv
|
||||
or return
|
||||
|
||||
@ -8,20 +8,26 @@ function funcsave --description "Save the current definition of all specified fu
|
||||
return 0
|
||||
end
|
||||
|
||||
if set -q _flag_directory
|
||||
set funcdir $_flag_directory
|
||||
else
|
||||
set funcdir $__fish_config_dir/functions
|
||||
end
|
||||
|
||||
if not set -q argv[1]
|
||||
printf (_ "%ls: Expected at least %d args, got only %d\n") funcsave 1 0
|
||||
return 1
|
||||
end
|
||||
|
||||
if not mkdir -p $__fish_config_dir/functions
|
||||
printf (_ "%s: Could not create configuration directory\n") funcsave
|
||||
if not mkdir -p $funcdir
|
||||
printf (_ "%s: Could not create configuration directory '%s'\n") funcsave $funcdir
|
||||
return 1
|
||||
end
|
||||
|
||||
set -l retval 0
|
||||
for funcname in $argv
|
||||
if functions -q -- $funcname
|
||||
functions -- $funcname >$__fish_config_dir/functions/$funcname.fish
|
||||
functions -- $funcname >$funcdir/$funcname.fish
|
||||
else
|
||||
printf (_ "%s: Unknown function '%s'\n") funcsave $funcname
|
||||
set retval 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user