a502259ba9
If you don't quote your variables the scripts get very buggy if you run them with arguments with spaces in them, or even run them from a directory with spaces in its path.
78 lines
1.6 KiB
Bash
Executable File
78 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
root=$(readlink -e "$(dirname "$0")")
|
|
|
|
prefix="/opt/nntpchan"
|
|
|
|
help_text="usage: $0 [--prefix /opt/nntpchan] [-q|--quiet] [-r|--rebuild] [--disable-redis]"
|
|
|
|
# check for help flags first
|
|
for arg in "$@" ; do
|
|
case $arg in
|
|
-h|--help)
|
|
echo "$help_text"
|
|
exit 0
|
|
;;
|
|
esac
|
|
done
|
|
|
|
_next=""
|
|
want_rebuild="0"
|
|
want_quiet="0"
|
|
build_args=""
|
|
|
|
# check for main flags
|
|
for arg in "$@" ; do
|
|
case $arg in
|
|
-q|--quiet)
|
|
want_quiet="1"
|
|
;;
|
|
-r|--rebuild)
|
|
want_rebuild="1"
|
|
;;
|
|
--prefix)
|
|
_next="prefix"
|
|
;;
|
|
--prefix=*)
|
|
prefix=$(echo "$arg" | cut -d'=' -f2)
|
|
;;
|
|
--disable-redis)
|
|
build_args="$build_args --disable-redis"
|
|
;;
|
|
*)
|
|
if [ "X$_next" == "Xprefix" ] ; then
|
|
# set prefix
|
|
prefix="$arg"
|
|
_next=""
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
_cmd() {
|
|
if [ "X$want_quiet" == "X1" ] ; then
|
|
"$@" &> /dev/null
|
|
else
|
|
"$@"
|
|
fi
|
|
}
|
|
|
|
if [ "X$want_rebuild" == "X1" ] ; then
|
|
_cmd echo "rebuilding daemon";
|
|
_cmd "$root/build.sh" $build_args
|
|
fi
|
|
|
|
if [ ! -e "$root/srndv2" ] ; then
|
|
_cmd echo "building daemon"
|
|
# TODO: use different GOPATH for root?
|
|
_cmd "$root/build.sh" "$build_args"
|
|
fi
|
|
|
|
|
|
_cmd mkdir -p "$prefix"
|
|
_cmd mkdir -p "$prefix/webroot/thm"
|
|
_cmd mkdir -p "$prefix/webroot/img"
|
|
_cmd cp -f "$root/srndv2" "$prefix/srndv2"
|
|
_cmd cp -rf "$root/"{doc,contrib,certs} "$prefix/"
|
|
_cmd echo "installed to $prefix"
|