#!/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