diff --git a/cosmos/generate_keys.sh b/cosmos/generate_keys.sh new file mode 100644 index 0000000..8d6f6b7 --- /dev/null +++ b/cosmos/generate_keys.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# Example: +# /bin/bash ./generate_keys.sh +# +# Dependencies: +# brew install jq +# +# Description: +# Opens the Cosmos JSON file and extracts the private/public key and places them into actual files + +root=$(git rev-parse --show-toplevel) +config="$root/master/cosmos-config.json" + +# check the jq dependency is available +type jq >/dev/null 2>&1 || { printf >&2 "\nThe jq dependency is missing. Please first run 'brew install jq'\n"; exit 1; } + +if [ ! -f "$config" ]; then + printf "\nSorry, this script needs access to $config - please run 'get_config.sh' script first\n" + exit 1 +fi + +function strip_newlines() { + local config=$1 + local key=$2 + cat $config | jq --raw-output "$key" | sed 's/$/\\n/' | tr -d '\n' +} + +private=$(strip_newlines $config ".secure_configuration.git_ssh_private_key") +public=$(cat $config | jq --raw-output ".secure_configuration.git_ssh_public_key") +backup=$(cat $config | jq --raw-output ".secure_configuration.backup_encryption_key_20150608") + +# we need to remove a stray \n at the end of the ouput in each variable; hence ${VAR::-2} +echo "${private::-2}" > $root/master/private.key +echo $public > $root/master/public.key +echo $backup > $root/master/backup_encryption_key + +printf "\nThe private, public and backup key files have been successfully generated:\n"