| #!/bin/bash |
| |
| set -e |
| |
| listFile=shell_test_list.json |
| |
| case $1 in |
| "store") |
| in=$(</dev/stdin) |
| server=$(echo "$in" | jq --raw-output ".ServerURL") |
| serverHash=$(echo "$server" | sha1sum - | awk '{print $1}') |
| |
| username=$(echo "$in" | jq --raw-output ".Username") |
| password=$(echo "$in" | jq --raw-output ".Secret") |
| echo "{ \"Username\": \"${username}\", \"Secret\": \"${password}\" }" > $TEMP/$serverHash |
| # add the server to the list file |
| if [[ ! -f $TEMP/$listFile ]]; then |
| echo "{ \"${server}\": \"${username}\" }" > $TEMP/$listFile |
| else |
| list=$(<$TEMP/$listFile) |
| echo "$list" | jq ". + {\"${server}\": \"${username}\"}" > $TEMP/$listFile |
| fi |
| ;; |
| "get") |
| in=$(</dev/stdin) |
| serverHash=$(echo "$in" | sha1sum - | awk '{print $1}') |
| if [[ ! -f $TEMP/$serverHash ]]; then |
| echo "credentials not found in native keychain" |
| exit 1 |
| fi |
| payload=$(<$TEMP/$serverHash) |
| echo "$payload" |
| ;; |
| "erase") |
| in=$(</dev/stdin) |
| serverHash=$(echo "$in" | sha1sum - | awk '{print $1}') |
| rm -f $TEMP/$serverHash |
| |
| # Remove the server from the list |
| list=$(<$TEMP/$listFile) |
| echo "$list" | jq "del(.[\"${in}\"])" > $TEMP/$listFile |
| ;; |
| "list") |
| if [[ ! -f $TEMP/$listFile ]]; then |
| echo "{}" |
| else |
| payload=$(<$TEMP/$listFile) |
| echo "$payload" |
| fi |
| ;; |
| *) |
| echo "unknown credential option" |
| exit 1 |
| ;; |
| esac |