hassio-build/build-scripts/frontend-build-env/create_frontend.sh
2017-07-24 10:59:19 +02:00

92 lines
2 KiB
Bash
Executable file

#!/bin/bash
set -e
BUILD_CONTAINER_NAME=hassio-frontend-$$
BRANCH=dev
REPOSITORY=https://github.com/home-assistant/hassio
cleanup() {
echo "[INFO] Cleanup."
# Stop docker container
echo "[INFO] Cleaning up hassio-frontend container."
docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true
docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true
if [ "$1" == "fail" ]; then
exit 1
fi
}
trap 'cleanup fail' SIGINT SIGTERM
# Get the absolute script location
pushd "$(dirname "$0")" > /dev/null 2>&1
SCRIPTPATH=$(pwd)
popd > /dev/null 2>&1
help () {
cat << EOF
Script for hassio frontend build
create_frontend [options]
Options:
-h, --help
Display this help and exit.
-r, --repository
Repository to fetch hassio
-b, --branch
Branch to checkout
EOF
}
# Parse arguments
while [[ $# -gt 0 ]]; do
key=$1
case $key in
-h|--help)
help
exit 0
;;
-r|--repository)
REPOSITORY=$2
shift
;;
-b|--branch)
BRANCH=$2
shift
;;
*)
echo "[WARNING] $0 : Argument '$1' unknown. Ignoring."
;;
esac
shift
done
# Get the absolute script location
pushd "$(dirname "$0")" > /dev/null 2>&1
SCRIPTPATH=$(pwd)
popd > /dev/null 2>&1
BUILD_DIR=${BUILD_DIR:=$SCRIPTPATH}
WORKSPACE=${BUILD_DIR:=$SCRIPTPATH}/hassio-frontend
echo "[INFO] Checkout hass.io repository"
if [ ! -d "$WORKSPACE" ]; then
git clone "$REPOSITORY" "$WORKSPACE"
cd "$WORKSPACE" && git checkout -b "$BRANCH"
git submodule update --init --recursive --remote
fi
echo "[INFO] Start frontend build"
docker stop $BUILD_CONTAINER_NAME 2> /dev/null || true
docker rm --volumes $BUILD_CONTAINER_NAME 2> /dev/null || true
docker run --rm \
-v "$WORKSPACE":/hassio \
--name $BUILD_CONTAINER_NAME \
homeassistant/frontend-build-env \
/run-build.sh
cleanup "okay"
exit 0