mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-06 08:51:14 -03:00
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:
@@ -9,6 +9,7 @@ Synopsis
|
|||||||
::
|
::
|
||||||
|
|
||||||
funcsave FUNCTION_NAME
|
funcsave FUNCTION_NAME
|
||||||
|
funcsave [(-d | --directory) where/to/save ] FUNCTION_NAME
|
||||||
|
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
complete -c funcsave -xa "(functions -na)" -d "Save function"
|
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"
|
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
|
argparse -n funcsave $options -- $argv
|
||||||
or return
|
or return
|
||||||
|
|
||||||
@@ -8,20 +8,26 @@ function funcsave --description "Save the current definition of all specified fu
|
|||||||
return 0
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if set -q _flag_directory
|
||||||
|
set funcdir $_flag_directory
|
||||||
|
else
|
||||||
|
set funcdir $__fish_config_dir/functions
|
||||||
|
end
|
||||||
|
|
||||||
if not set -q argv[1]
|
if not set -q argv[1]
|
||||||
printf (_ "%ls: Expected at least %d args, got only %d\n") funcsave 1 0
|
printf (_ "%ls: Expected at least %d args, got only %d\n") funcsave 1 0
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if not mkdir -p $__fish_config_dir/functions
|
if not mkdir -p $funcdir
|
||||||
printf (_ "%s: Could not create configuration directory\n") funcsave
|
printf (_ "%s: Could not create configuration directory '%s'\n") funcsave $funcdir
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
|
||||||
set -l retval 0
|
set -l retval 0
|
||||||
for funcname in $argv
|
for funcname in $argv
|
||||||
if functions -q -- $funcname
|
if functions -q -- $funcname
|
||||||
functions -- $funcname >$__fish_config_dir/functions/$funcname.fish
|
functions -- $funcname >$funcdir/$funcname.fish
|
||||||
else
|
else
|
||||||
printf (_ "%s: Unknown function '%s'\n") funcsave $funcname
|
printf (_ "%s: Unknown function '%s'\n") funcsave $funcname
|
||||||
set retval 1
|
set retval 1
|
||||||
|
|||||||
Reference in New Issue
Block a user