MQL5-Google-Onedrive/scripts/decrypt_workspace.sh

34 行
1,017 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# Decrypt an OpenSSL-encrypted archive created by encrypt_workspace.sh and extract it.
# Passphrase is taken from ENCRYPTION_PASSPHRASE, or (fallback) JULES_API_KEY.
#
# Example:
# export ENCRYPTION_PASSPHRASE='...'
# ./scripts/decrypt_workspace.sh workspace.tar.gz.enc /path/to/output_dir
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
IN_FILE="${1:-${ROOT_DIR}/workspace.tar.gz.enc}"
OUT_DIR="${2:-${ROOT_DIR}/_decrypted_workspace}"
TMP_TAR="${OUT_DIR}/workspace.tar.gz"
PASSPHRASE="${ENCRYPTION_PASSPHRASE:-${JULES_API_KEY:-}}"
if [[ -z "${PASSPHRASE}" ]]; then
echo "ERROR: Set ENCRYPTION_PASSPHRASE (preferred) or JULES_API_KEY in the environment." >&2
exit 1
fi
mkdir -p "${OUT_DIR}"
export PASSPHRASE
openssl enc -d -aes-256-gcm -pbkdf2 -iter 200000 \
-pass env:PASSPHRASE \
-in "${IN_FILE}" \
-out "${TMP_TAR}"
unset PASSPHRASE
tar -xzf "${TMP_TAR}" -C "${OUT_DIR}"
rm -f "${TMP_TAR}"
echo "Decrypted workspace extracted to: ${OUT_DIR}"