diff --git a/build/entrypoint.sh b/build/entrypoint.sh index 93712e4..74a3504 100644 --- a/build/entrypoint.sh +++ b/build/entrypoint.sh @@ -19,10 +19,18 @@ if [[ $1 == init ]]; then /protonmail/proton-bridge --cli $@ else - if [[ $HOME == / ]] then + if [[ $HOME == "/" ]] then echo "When running rootless, you must set a home dir as the HOME env var. We recommend /data. Make sure it is writable by the user running the container (currently id is $(id -u) and HOME is $HOME)." + exit 1 + fi + # give friendly error if you don't have protonmail data - find $HOME | grep -q . || (echo "No files found - start the container with the init command, or copy/mount files into it at $HOME first. Sleeping 5 minutes before exiting so you have time to copy the files over." && sleep 300 && exit 1) + if [[ `find $HOME | wc -l` == 1 ]]; then # 1 because find $HOME will always return $HOME + echo "No files found - start the container with the init command, or copy/mount files into it at $HOME first. Sleeping 5 minutes before exiting so you have time to copy the files over." + sleep 300 + exit 1 + fi + # give friendly error if the user doesn't own the data if [[ $(id -u) != 0 ]]; then if [[ `find $HOME/.* -not -user $(id -u) | wc -l` != 0 ]]; then @@ -34,6 +42,7 @@ else # delete lock files if they exist - this can happen if the container is restarted forcefully find $HOME -name "*.lock" -delete + # 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 :) diff --git a/deb/entrypoint.sh b/deb/entrypoint.sh index a68a42c..c117d81 100644 --- a/deb/entrypoint.sh +++ b/deb/entrypoint.sh @@ -33,10 +33,18 @@ if [[ $1 == init ]]; then protonmail-bridge --cli $@ else - if [[ $HOME == / ]] then + if [[ $HOME == "/" ]] then echo "When running rootless, you must set a home dir as the HOME env var. We recommend /data. Make sure it is writable by the user running the container (currently id is $(id -u) and HOME is $HOME)." + exit 1 + fi + # give friendly error if you don't have protonmail data - find $HOME | grep -q . || (echo "No files found - start the container with the init command, or copy/mount files into it at $HOME first. Sleeping 5 minutes before exiting so you have time to copy the files over." && sleep 300 && exit 1) + if [[ `find $HOME | wc -l` == 1 ]]; then # 1 because find $HOME will always return $HOME + echo "No files found - start the container with the init command, or copy/mount files into it at $HOME first. Sleeping 5 minutes before exiting so you have time to copy the files over." + sleep 300 + exit 1 + fi + # give friendly error if the user doesn't own the data if [[ $(id -u) != 0 ]]; then if [[ `find $HOME/.* -not -user $(id -u) | wc -l` != 0 ]]; then