+++ /dev/null
-#!/bin/bash
-# Desc: Validates Input
-
-yell() { echo "$0: $*" >&2; } #o Yell, Die, Try Three-Fingered Claw technique
-die() { yell "$*"; exit 111; } #o Ref/Attrib: https://stackoverflow.com/a/25515370
-try() { "$@" || die "cannot $*"; } #o
-validateInput() {
- # Desc: Validates Input
- # Usage: validateInput [str input] [str input type]
- # Version: 0.3.1
- # Input: arg1: string to validate
- # arg2: string specifying input type (ex:"ssh_pubkey")
- # Output: return code 0: if input string matched specified string type
- # Depends: bash 5, yell()
-
- local fn argInput argType
-
- # Save function name
- fn="${FUNCNAME[0]}";
-
- # Process arguments
- argInput="$1";
- argType="$2";
- if [[ $# -gt 2 ]]; then yell "ERROR:$0:$fn:Too many arguments."; exit 1; fi;
-
- # Check for blank
- if [[ -z "$argInput" ]]; then return 1; fi
-
- # Define input types
- ## ssh_pubkey
- ### Check for alnum/dash base64 (ex: "ssh-rsa AAAAB3NzaC1yc2EAAA")
- if [[ "$argType" = "ssh_pubkey" ]]; then
- if [[ "$argInput" =~ ^[[:alnum:]-]*[\ ]*[[:alnum:]+/=]*$ ]]; then
- return 0; fi; fi;
-
- ## age_pubkey
- ### Check for age1[:bech32:]
- if [[ "$argType" = "age_pubkey" ]]; then
- if [[ "$argInput" =~ ^age1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]*$ ]]; then
- return 0; fi; fi
-
- ## integer
- if [[ "$argType" = "integer" ]]; then
- if [[ "$argInput" =~ ^[[:digit:]]*$ ]]; then
- return 0; fi; fi;
-
- ## time element (year, month, week, day, hour, minute, second)
- if [[ "$argType" = "time_element" ]]; then
- if [[ "$argInput" = "year" ]] || \
- [[ "$argInput" = "month" ]] || \
- [[ "$argInput" = "week" ]] || \
- [[ "$argInput" = "day" ]] || \
- [[ "$argInput" = "hour" ]] || \
- [[ "$argInput" = "minute" ]] || \
- [[ "$argInput" = "second" ]]; then
- return 0; fi; fi;
-
- # Return error if no condition matched.
- return 1;
-} # Validates strings
-
-#==BEGIN sample code==
-testKey="ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq8G0XWi8A+MXNu7MEaxDsZJUwtgPC4shGAAarXC4PQTRxLfUHtyWkNbzGh31U/bKI3Snp1O78yOVEZSjdmWkDvkwtWKJQcoZBStgqw9oIPE0oG8uh49XoX77nVabi0JCf8zO63Ai4/9EdwyqE9xsJ+soOYt2V5+UCj0zsv1xpt2YhfYyXrzBv9x6k9lCxy0NW3Ik1mSW+OzSOT3tgDf36ujV/CI2i8ERM9civWy8FtFOReZMV2kkbj7fXI4E1wKM1RFIn7er1MseCSvbvh3o2uCO46/euqHAstYs5cL+4yB2qM/xKfHT5aocDjq7GBLKtree9xdNF0EE9CNr/+J5R";
-keyType="ssh_pubkey";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="blah-blah onetwothreeREEE";
-keyType="ssh_pubkey";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="";
-keyType="ssh_pubkey";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="age1c3s6huz6en6jh40cem0erc0m2un2ry85my0t0ujj4a5cu8gzkysq9l39e4";
-keyType="age_pubkey";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="123"
-keyType="integer";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="123abc"
-keyType="integer";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-testKey="year"
-keyType="time_element";
-if validateInput "$testKey" "$keyType"; then echo "Looks like a valid $keyType:\"$testKey\""; else echo "Doesn't look like a valid $keyType:\"$testKey\""; fi
-echo "";
-
-#==END sample code==
-
-# Author: Steven Baltakatei Sandoval (bktei.com)
-# License: GPLv3+