edit_env.sh (969B)
1 #!/usr/bin/env bash 2 3 set -o errexit 4 set -o pipefail 5 6 main (){ 7 NAME=$1 8 BIN=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) 9 SECRETS=$(echo "$BIN/..") 10 KEY_FILE=$(echo "$SECRETS/$NAME.key") 11 ENC_FILE=$(echo "$SECRETS/$NAME.enc") 12 PLAINTEXT_FILE=$(echo "$SECRETS/$NAME.plaintext") 13 export SOPS_AGE_KEY_FILE=$KEY_FILE 14 echo "BIN = $BIN" 15 echo "SECRETS = $SECRETS" 16 echo "KEY = $KEY_FILE" 17 echo "SOPS KEY = $SOPS_AGE_KEY_FILE" 18 echo "ENC = $ENC_FILE" 19 echo "PLAIN = $PLAINTEXT_FILE" 20 (bash $BIN/ensure_bins.sh) 21 PATH="$PATH:$HOME/.local/bin:$BIN" 22 23 if [[ -f "$ENC_FILE" ]]; then 24 sops --decrypt --input-type dotenv --output-type dotenv "$ENC_FILE" > "$PLAINTEXT_FILE" 25 fi 26 ${EDITOR:-nano} "$PLAINTEXT_FILE" 27 sops --input-type dotenv --output-type dotenv --encrypt --age $(age-keygen -y "$KEY_FILE") "$PLAINTEXT_FILE" > "$ENC_FILE" 28 rm "$PLAINTEXT_FILE" 29 } 30 (main $1)