diff options
author | 2007-04-17 07:44:53 +1000 | |
---|---|---|
committer | 2007-04-17 07:44:53 +1000 | |
commit | 52f9560b4f2f884142895b646a56f97d3882d028 (patch) | |
tree | 1a7c7321fa11c30b1051d9f6044bd66a53de5c1e /share/functions/funcsave.fish | |
parent | 91ca8610ee7545f5c7979b4039a7ef2707d56583 (diff) |
Rename save_function to funcsave to keep consistency between function/variable functions
darcs-hash:20070416214453-ac50b-9ec9559fc468256dc149e92e9fece37da940ad7e.gz
Diffstat (limited to 'share/functions/funcsave.fish')
-rw-r--r-- | share/functions/funcsave.fish | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/share/functions/funcsave.fish b/share/functions/funcsave.fish new file mode 100644 index 00000000..ff9cabb5 --- /dev/null +++ b/share/functions/funcsave.fish @@ -0,0 +1,42 @@ + +function funcsave --description "Save the current definition of all specified functions to file" + + if count $argv >/dev/null + switch $argv[1] + case -h --h --he --hel --help + __fish_print_help save_function + return 0 + end + else + __fish_print_help save_function + end + + set -l res 0 + + set -l configdir ~/.config + if set -q XDG_CONFIG_HOME + set configdir $XDG_CONFIG_HOME + end + + for i in $configdir $configdir/fish $configdir/fish/functions + if not test -d $i + if not command mkdir $i >/dev/null + printf (_ "%s: Could not create configuration directory\n") save_function + return 1 + end + end + end + + for i in $argv + if functions -q $i + functions $i > $configdir/fish/functions/$i.fish + functions -e $i + else + printf (_ "%s: Unknown function '%s'\n") save_function $i + set res 1 + end + end + + return $res +end + |