Add docker
option to the tools.
This commit is contained in:
parent
d314c02a13
commit
8f11f91677
2 changed files with 52 additions and 4 deletions
|
@ -16,20 +16,34 @@ CONTAINER="${WORK_DIR}/.container"
|
||||||
|
|
||||||
DEST="${WORK_DIR}/_site"
|
DEST="${WORK_DIR}/_site"
|
||||||
|
|
||||||
|
docker=false
|
||||||
|
|
||||||
_help() {
|
_help() {
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
echo
|
echo
|
||||||
echo " bash build.sh [options]"
|
echo " bash build.sh [options]"
|
||||||
echo
|
echo
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " -b, --baseurl <URL> The site relative url that start with slash, e.g. '/project'"
|
echo " -b, --baseurl <URL> The site relative url that start with slash, e.g. '/project'"
|
||||||
echo " -h, --help Print the help information"
|
echo " -h, --help Print the help information"
|
||||||
echo " -d, --destination <DIR> Destination directory (defaults to ./_site)"
|
echo " -d, --destination <DIR> Destination directory (defaults to ./_site)"
|
||||||
|
echo " --docker Build site within docker"
|
||||||
|
}
|
||||||
|
|
||||||
|
_install_tools() {
|
||||||
|
# docker image `jekyll/jekyll` based on Apline Linux
|
||||||
|
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
||||||
|
apk update
|
||||||
|
apk add yq
|
||||||
}
|
}
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
cd "$WORK_DIR"
|
cd "$WORK_DIR"
|
||||||
|
|
||||||
|
if [[ -f Gemfile.lock ]]; then
|
||||||
|
rm -f Gemfile.lock
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -d $CONTAINER ]]; then
|
if [[ -d $CONTAINER ]]; then
|
||||||
rm -rf "$CONTAINER"
|
rm -rf "$CONTAINER"
|
||||||
fi
|
fi
|
||||||
|
@ -93,6 +107,10 @@ main() {
|
||||||
shift
|
shift
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--docker)
|
||||||
|
docker=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-h | --help)
|
-h | --help)
|
||||||
_help
|
_help
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -104,6 +122,10 @@ main() {
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if $docker; then
|
||||||
|
_install_tools
|
||||||
|
fi
|
||||||
|
|
||||||
_init
|
_init
|
||||||
_build
|
_build
|
||||||
}
|
}
|
||||||
|
|
28
tools/run.sh
28
tools/run.sh
|
@ -17,8 +17,9 @@ WORK_DIR="$(dirname "$(dirname "$(realpath "$0")")")"
|
||||||
CONTAINER=.container
|
CONTAINER=.container
|
||||||
SYNC_TOOL=_scripts/sh/sync_monitor.sh
|
SYNC_TOOL=_scripts/sh/sync_monitor.sh
|
||||||
|
|
||||||
cmd="bundle exec jekyll s -l -o"
|
cmd="bundle exec jekyll s -l"
|
||||||
realtime=false
|
realtime=false
|
||||||
|
docker=false
|
||||||
|
|
||||||
_help() {
|
_help() {
|
||||||
echo "Usage:"
|
echo "Usage:"
|
||||||
|
@ -32,6 +33,7 @@ _help() {
|
||||||
echo " -h, --help Print the help information"
|
echo " -h, --help Print the help information"
|
||||||
echo " -t, --trace Show the full backtrace when an error occurs"
|
echo " -t, --trace Show the full backtrace when an error occurs"
|
||||||
echo " -r, --realtime Make the modified content updated in real time"
|
echo " -r, --realtime Make the modified content updated in real time"
|
||||||
|
echo " --docker Run within docker"
|
||||||
}
|
}
|
||||||
|
|
||||||
_cleanup() {
|
_cleanup() {
|
||||||
|
@ -44,6 +46,9 @@ _cleanup() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_init() {
|
_init() {
|
||||||
|
if [[ -f Gemfile.lock ]]; then
|
||||||
|
rm -f Gemfile.lock
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -d "${WORK_DIR}/${CONTAINER}" ]]; then
|
if [[ -d "${WORK_DIR}/${CONTAINER}" ]]; then
|
||||||
rm -rf "${WORK_DIR}/${CONTAINER}"
|
rm -rf "${WORK_DIR}/${CONTAINER}"
|
||||||
|
@ -72,9 +77,20 @@ _check_command() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_install_tools() {
|
||||||
|
# docker image `jekyll/jekyll` based on Apline Linux
|
||||||
|
echo "http://dl-cdn.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
||||||
|
apk update
|
||||||
|
apk add yq
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
_init
|
_init
|
||||||
|
|
||||||
|
if $docker; then
|
||||||
|
_install_tools
|
||||||
|
fi
|
||||||
|
|
||||||
cd "${WORK_DIR}/${CONTAINER}"
|
cd "${WORK_DIR}/${CONTAINER}"
|
||||||
bash _scripts/sh/create_pages.sh
|
bash _scripts/sh/create_pages.sh
|
||||||
bash _scripts/sh/dump_lastmod.sh
|
bash _scripts/sh/dump_lastmod.sh
|
||||||
|
@ -94,6 +110,12 @@ main() {
|
||||||
"$WORK_DIR" | xargs -0 -I {} bash "./${SYNC_TOOL}" {} "$WORK_DIR" . &
|
"$WORK_DIR" | xargs -0 -I {} bash "./${SYNC_TOOL}" {} "$WORK_DIR" . &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! $docker; then
|
||||||
|
cmd+=" -o"
|
||||||
|
else
|
||||||
|
cmd+=" -H 0.0.0.0"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "\$ $cmd"
|
echo "\$ $cmd"
|
||||||
eval "$cmd"
|
eval "$cmd"
|
||||||
}
|
}
|
||||||
|
@ -133,6 +155,10 @@ while (($#)); do
|
||||||
realtime=true
|
realtime=true
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--docker)
|
||||||
|
docker=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-h | --help)
|
-h | --help)
|
||||||
_help
|
_help
|
||||||
exit 0
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue