aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/funcsave.fish
diff options
context:
space:
mode:
authorGravatar axel <axel@liljencrantz.se>2007-04-17 07:44:53 +1000
committerGravatar axel <axel@liljencrantz.se>2007-04-17 07:44:53 +1000
commit52f9560b4f2f884142895b646a56f97d3882d028 (patch)
tree1a7c7321fa11c30b1051d9f6044bd66a53de5c1e /share/functions/funcsave.fish
parent91ca8610ee7545f5c7979b4039a7ef2707d56583 (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.fish42
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
+