2020-06-01 13:51:24 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
|
|
# Initialize
|
|
|
|
|
if [[ $1 == init ]]; then
|
2025-06-17 09:02:05 +00:00
|
|
|
echo "Entering 'init' mode"
|
2020-06-01 13:51:24 +00:00
|
|
|
|
|
|
|
|
# Initialize pass
|
|
|
|
|
gpg --generate-key --batch /protonmail/gpgparams
|
|
|
|
|
pass init pass-key
|
2022-05-12 18:31:03 +00:00
|
|
|
|
2022-10-16 06:49:38 +00:00
|
|
|
# Kill the other instance as only one can be running at a time.
|
|
|
|
|
# This allows users to run entrypoint init inside a running conainter
|
|
|
|
|
# which is useful in a k8s environment.
|
|
|
|
|
# || true to make sure this would not fail in case there is no running instance.
|
|
|
|
|
pkill protonmail-bridge || true
|
2020-06-01 13:51:24 +00:00
|
|
|
|
|
|
|
|
# Login
|
2021-03-03 21:11:57 +00:00
|
|
|
/protonmail/proton-bridge --cli $@
|
2020-06-01 13:51:24 +00:00
|
|
|
|
2025-06-17 09:02:05 +00:00
|
|
|
elif [[ $1 == debug ]]; then
|
|
|
|
|
echo "Entering 'debug' mode"
|
|
|
|
|
|
|
|
|
|
# Debug mode - call CLI directly
|
|
|
|
|
/protonmail/proton-bridge --cli
|
|
|
|
|
|
2020-06-01 13:51:24 +00:00
|
|
|
else
|
2025-06-17 09:02:05 +00:00
|
|
|
echo "Entering 'default' mode"
|
2020-06-01 13:51:24 +00:00
|
|
|
|
|
|
|
|
# socat will make the conn appear to come from 127.0.0.1
|
|
|
|
|
# ProtonMail Bridge currently expects that.
|
|
|
|
|
# It also allows us to bind to the real ports :)
|
|
|
|
|
socat TCP-LISTEN:25,fork TCP:127.0.0.1:1025 &
|
|
|
|
|
socat TCP-LISTEN:143,fork TCP:127.0.0.1:1143 &
|
|
|
|
|
|
|
|
|
|
# Start protonmail
|
|
|
|
|
# Fake a terminal, so it does not quit because of EOF...
|
|
|
|
|
rm -f faketty
|
|
|
|
|
mkfifo faketty
|
2021-03-03 21:11:57 +00:00
|
|
|
cat faketty | /protonmail/proton-bridge --cli $@
|
2020-06-01 13:51:24 +00:00
|
|
|
|
|
|
|
|
fi
|