style(unitproc/):Shorten names of template prefix (bktemp -> bkt)
[BK-2020-03.git] / unitproc / bkt-checkURL
diff --git a/unitproc/bkt-checkURL b/unitproc/bkt-checkURL
new file mode 100644 (file)
index 0000000..6ae6ff0
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+checkURL() {
+    # Desc: Checks if string is a valid URL.
+    # Warning: Does not correctly handle multi-byte characters.
+    # Version: 0.0.2
+    # Input: arg1: string
+    # Output: return code 0: string is a valid URL
+    #         return code 1: string is NOT a valid URL
+    # Depends: Bash 5.0.3
+    # Ref/Attrib: https://stackoverflow.com/a/3184819
+    regex='(https?|ftp|file|ssh|git)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]'
+    arg1="$1";
+    if [[ $arg1 =~ $regex ]]; then
+       return 0;
+    else
+       return 1;
+    fi;
+}
+
+#==BEGIN sample code
+testString="https://google.com/security.main.html"
+if checkURL "$testString"; then echo "Is a valid URL:$testString"; else echo "Is NOT a valid URL:$testString"; fi;
+testString="ssh://username@host.xz/absolute/path/to/repo.git/"
+if checkURL "$testString"; then echo "Is a valid URL:$testString"; else echo "Is NOT a valid URL:$testString"; fi;
+#==END sample code