docs/scripts/dev

84 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -e
PORT=9001
IMAGE=rancher/docs
TAG=dev
THEME=
BUILD=
# cd to app root
CWD=$(dirname $0)
if [[ `basename $(pwd)` = 'scripts' ]]; then
cd ../
else
cd `dirname $CWD`
fi
print_help()
{
cat 1>&2 <<EOF
Usage:
[-n] [-p PORT] [-t]
-b - Build the image instead of pulling from the registry
-p PORT - Port to listen on
-t DIR - Use DIR to for the theme, to devlop the theme at the same time
EOF
}
echoerr()
{
printf "%s\n" "$*" >&2;
}
absolute() {
# $1 : relative filename
echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
}
while getopts ":bp:t:" opt;do
case $opt in
b)
BUILD="true"
;;
p)
PORT="${OPTARG}"
;;
t)
THEME="${OPTARG}"
;;
\?)
echoerr "Invalid arguemnts"
print_help
exit 1
;;
:)
echoerr "Option -${OPTARG} requires an argument."
print_help
exit 1
;;
esac
done
THEMEVOLUME=""
if [[ "$THEME" ]]; then
echo "Using theme from ${THEME}"
ABSOLUTE=$(absolute $THEME)
THEMEVOLUME="-v ${ABSOLUTE}:/run/node_modules/rancher-website-theme"
fi
if [ -z "$BUILD" ]; then
docker pull ${IMAGE}:${TAG}
else
echo "Building ${IMAGE}:${TAG}"
TAG=local
docker build -f Dockerfile.dev -t ${IMAGE}:${TAG} .
fi
echo "Starting server on http://localhost:${PORT}"
docker run --rm -p ${PORT}:${PORT} -it -v $(pwd):/site ${THEMEVOLUME} ${IMAGE}:${TAG} dev --port=${PORT}