-#!/usr/bin/env bash
-
-yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
-die() { yell "$*"; exit 111; } # same as yell() but non-zero exit status
-try() { "$@" || die "cannot $*"; } # runs args as command, reports args if command fails
-check_resembles_gpg_fingerprint() {
- # Desc: Checks if input string looks like gpg fingerprint
- # Usage: check_resembles_gpg_fingerprint arg1
- # Input: arg1: string
- # Output: exit code: 0 if arg1 is fingerprint, 1 otherwise
- # Depends: yell(), die(), try()
- # Version: 0.0.1
- local pattern1 pattern2 input input_length
-
- # Check args
- if [[ $# -ne 1 ]]; then
- die "ERROR:Invalid number of arguments:$#";
- else
- input="$1";
- fi;
-
- ## Trim leading `0x`
- pattern1="(0x)(.*)";
- if [[ $input =~ $pattern1 ]]; then
- input="${input:2}";
- #yell "DEBUG:input:$input";
- fi;
-
- ## Check if char count multiple of 8
- input_length="${#input}";
- if [[ ! $(( input_length % 8 )) -eq 0 ]]; then
- yell "DEBUG:Length not a multiple of 8:$input_length:$input";
- return 1;
- fi;
-
- ## Check if hexadecimal
- pattern2="[0-9A-Fa-f]{8,40}";
- if [[ $1 =~ $pattern2 ]]; then
- #yell "DEBUG:is a fingerprint:$arg";
- return 0;
- else
- #yell "DEBUG:Not a fingerprint:$arg";
- return 1;
- fi;
-}; # Checks if input string looks like gpg fingerprint
-
-
-# test code
-myVar="0xdc3469c9";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;
-
-myVar="69B4C4CDC628F8F9";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;
-
-myVar="26646D99CBAEC9B81982EF6029D9EE6B1FC730C1";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;
-
-myVar="deadbeef";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;
-
-myVar="foobar";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;
-
-myVar="zzzzzzzz";
-if check_resembles_gpg_fingerprint "$myVar"; then
- yell "Looks like a gpg fingerprint:$myVar";
-else
- yell "Doesn't look like a gpg fingerprint:$myVar";
-fi;