protonmail-bridge/initproton

49 lines
1.2 KiB
Bash
Executable file

#!/bin/bash
set -eufo pipefail
BRIDGE=/bin/bridge
FIFO=/tmp/fifo
PRINT_INFO=${PRINT_INFO:-""}
#### INIT
PASS_FILE=${PASS_FILE:-}
if [ -n "$PASS_FILE" ]; then
PASS=$(cat $PASS_FILE)
fi
echo "Checking for GPG configuration..."
if ! [ -d .gnupg ]; then
echo "Generating GPG Key..."
echo -e "%no-protection\nKey-Type: RSA\nKey-Length: 4096\nName-Real: $EMAIL\nExpire-Date: 0\n%commit" \
| gpg --generate-key --batch
fi
echo "Checking for Password Store..."
if ! [ -d .password-store ]; then
echo "Initializing Pass..."
pass init "$EMAIL"
fi
echo "Checking for ProtonMail Bridge Cache..."
if ! [ -d ~/.cache/protonmail/bridge ]; then
echo "Logging in to ProtonMail Bridge..."
COMMAND="login\n$EMAIL\n$PASSWORD"
MFA_CODE=${MFA_CODE:-}
if [ -n "$MFA_CODE" ]; then
COMMAND="$COMMAND\n$MFA_CODE"
fi
echo -e "$COMMAND" | $BRIDGE --cli
fi
if [ -n "$PRINT_INFO" ]; then
echo "Printing Info..."
echo info | $BRIDGE --cli | egrep '(Username|Password)' | sort -ru
fi
ARGUMENTS="--noninteractive"
LOG_LEVEL=${LOG_LEVEL:-}
if [ -n "$LOG_LEVEL" ]; then
ARGUMENTS="${ARGUMENTS} --log-level ${LOG_LEVEL}"
fi
echo "Starting ProtonMail Bridge: $BRIDGE $ARGUMENTS"
$BRIDGE --version
$BRIDGE $ARGUMENTS