aboutsummaryrefslogtreecommitdiff
path: root/conf.d/00functions.fish
diff options
context:
space:
mode:
Diffstat (limited to 'conf.d/00functions.fish')
-rw-r--r--conf.d/00functions.fish36
1 files changed, 36 insertions, 0 deletions
diff --git a/conf.d/00functions.fish b/conf.d/00functions.fish
new file mode 100644
index 0000000..f390b29
--- /dev/null
+++ b/conf.d/00functions.fish
@@ -0,0 +1,36 @@
+function alias_if --description "Alias if a program exists"
+ if test (count $argv) -lt 2
+ return
+ end
+ if command -sq $argv[1]
+ if test (count $argv) -gt 2
+ alias $argv[2] "$argv[1] $argv[3..-1]"
+ else
+ alias $argv[2] "$argv[1]"
+ end
+ end
+end
+
+function alias_if_not --description "Alias if a program doesn't exist"
+ if test (count $argv) -lt 2
+ return
+ end
+ if not command -sq $argv[1]
+ if test (count $argv) -gt 2
+ alias $argv[1] "$argv[2] $argv[3..-1]"
+ else
+ alias $argv[1] "$argv[2]"
+ end
+ end
+end
+
+function find_prog --description "Find one or more programs in \$PATH"
+ for prog in $argv
+ for search_path in $PATH
+ if test -x "$search_path/$prog"
+ echo -n "$prog"
+ return
+ end
+ end
+ end
+end