aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/contains.fish
diff options
context:
space:
mode:
Diffstat (limited to 'share/functions/contains.fish')
-rw-r--r--share/functions/contains.fish49
1 files changed, 49 insertions, 0 deletions
diff --git a/share/functions/contains.fish b/share/functions/contains.fish
new file mode 100644
index 00000000..331794c7
--- /dev/null
+++ b/share/functions/contains.fish
@@ -0,0 +1,49 @@
+#
+# This file defines various shellscript functions. Most of them are
+# meant to be used directly by the user, but some of them, typically
+# the ones whose name start with '__fish_', are only meant to be used
+# internally by fish.
+#
+
+function contains -d (_ "Test if a key is contained in a set of values")
+ while set -q argv
+ switch $argv[1]
+ case '-h' '--h' '--he' '--hel' '--help'
+ help contains
+ return
+
+ case '--'
+ # End the loop, the next argument is the key
+ set -e argv[1]
+ break
+
+ case '-*'
+ printf (_ "%s: Unknown option '%s'\n") contains $argv[$i]
+ help contains
+ return 1
+
+ case '*'
+ # End the loop, we found the key
+ break
+
+ end
+ set -e argv[1]
+ end
+
+ if not set -q argv
+ printf (_ "%s: Key not specified\n") contains
+ return 1
+ end
+
+ set -- key $argv[1]
+ set -e argv[1]
+
+ #
+ # Loop through values
+ #
+
+ printf "%s\n" $argv|grep -Fx -- $key >/dev/null
+ return $status
+end
+
+