homehub/docker-entrypoint.sh

50 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
set -e
if [ ! -f "/homehub_workspace/package.json" ]; then
echo "$0: Initializing the workspace at /homehub_workspace"
(
cd /;
/homehub_var/virtualenv/bin/cookiecutter --no-input -f -s /homehub-workspace;
)
fi
if [ -d "/homehub_workspace/docker-entrypoint.d/" ]; then
echo "$0: Executing setup scripts at /homehub_workspace/docker-entrypoint.d"
find "/homehub_workspace/docker-entrypoint.d/" -follow -type f -print | sort -n | while read -r f; do
case "$f" in
*.sh)
if [ -x "$f" ]; then
echo "$0: Executing $f";
"$f"
fi
;;
*) ;;
esac
done
fi
(
echo "$0: Installing backend dependencies at /homehub_workspace";
cd /homehub_workspace;
/homehub_var/virtualenv/bin/pip install -r requirements.txt;
)
SHOULD_BUILD_FRONTEND=1
if [ -f "/homehub_var/stamp_frontend.txt" ]; then
SHOULD_BUILD_FRONTEND=`sha256sum -s -c "/homehub_var/stamp_frontend.txt"; echo $?`
fi
if [ $SHOULD_BUILD_FRONTEND -eq 1 ]; then
echo "$0: Building and stamping the frontend at /homehub_workspace"
(
cd /homehub_workspace;
yarn --modules-folder $YARN_MODULES_FOLDER install --prod --pure-lockfile;
yarn --modules-folder $YARN_MODULES_FOLDER run webpack-cli;
sha256sum "/homehub_workspace/package.json" "/homehub_workspace/settings.js" > "/homehub_var/stamp_frontend.txt";
)
fi
exec "$@"