#!/bin/bash # something or other about android and tmux using PREFIX #: "${PREFIX:=''}" MY_ROOT="" if [ -z "${PREFIX-}" ]; then MY_ROOT="" else MY_ROOT="$PREFIX" fi # Not every platform has or needs sudo, gotta save them O(1)s... sudo_cmd="" ((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo" ############################### # # # http_get # # boilerplate for curl / wget # # # ############################### # See https://git.daplie.com/Daplie/daplie-snippets/blob/master/bash/http-get.sh http_get="" http_opts="" http_out="" detect_http_get() { if type -p curl >/dev/null 2>&1; then http_get="curl" http_opts="-fsSL" http_out="-o" elif type -p wget >/dev/null 2>&1; then http_get="wget" http_opts="--quiet" http_out="-O" else echo "Aborted, could not find curl or wget" return 7 fi } dap_dl() { $http_get $http_opts $http_out "$2" "$1" } dap_dl_bash() { dap_url=$1 #dap_args=$2 rm -rf dap-tmp-runner.sh $http_get $http_opts $http_out dap-tmp-runner.sh "$dap_url"; bash dap-tmp-runner.sh; rm dap-tmp-runner.sh } detect_http_get ## END HTTP_GET ## ################### # # # Install service # # # ################### my_app_name=goldilocks my_app_pkg_name=com.daplie.goldilocks.web my_app_dir=$(mktemp -d) installer_base="https://git.daplie.com/Daplie/goldilocks.js/raw/master" my_app_systemd_service="etc/systemd/system/${my_app_name}.service" my_app_systemd_tmpfiles="etc/tmpfiles.d/${my_app_name}.conf" my_app_launchd_service="Library/LaunchDaemons/${my_app_pkg_name}.plist" install_for_systemd() { echo "" echo "Installing as systemd service" echo "" mkdir -p $(dirname "$my_app_dir/$my_app_systemd_service") dap_dl "$installer_base/$my_app_systemd_service" "$my_app_dir/$my_app_systemd_service" $sudo_cmd mv "$my_app_dir/$my_app_systemd_service" "$MY_ROOT/$my_app_systemd_service" $sudo_cmd chown -R root:root "$MY_ROOT/$my_app_systemd_service" $sudo_cmd chmod 644 "$MY_ROOT/$my_app_systemd_service" mkdir -p $(dirname "$my_app_dir/$my_app_systemd_tmpfiles") dap_dl "$installer_base/$my_app_systemd_tmpfiles" "$my_app_dir/$my_app_systemd_tmpfiles" $sudo_cmd mv "$my_app_dir/$my_app_systemd_tmpfiles" "$MY_ROOT/$my_app_systemd_tmpfiles" $sudo_cmd chown -R root:root "$MY_ROOT/$my_app_systemd_tmpfiles" $sudo_cmd chmod 644 "$MY_ROOT/$my_app_systemd_tmpfiles" $sudo_cmd systemctl stop "${my_app_name}.service" >/dev/null 2>/dev/null $sudo_cmd systemctl daemon-reload $sudo_cmd systemctl start "${my_app_name}.service" $sudo_cmd systemctl enable "${my_app_name}.service" echo "$my_app_name started with systemctl" } install_for_launchd() { echo "" echo "Installing as launchd service" echo "" # See http://www.launchd.info/ mkdir -p $(dirname "$my_app_dir/$my_app_launchd_service") dap_dl "$installer_base/$my_app_launchd_service" "$my_app_dir/$my_app_launchd_service" $sudo_cmd mv "$my_app_dir/$my_app_launchd_service" "$MY_ROOT/$my_app_launchd_service" $sudo_cmd chown root:wheel "$MY_ROOT/$my_app_launchd_service" $sudo_cmd chmod 0644 "$MY_ROOT/$my_app_launchd_service" $sudo_cmd launchctl unload -w "$MY_ROOT/$my_app_launchd_service" >/dev/null 2>/dev/null $sudo_cmd launchctl load -w "$MY_ROOT/$my_app_launchd_service" echo "$my_app_name started with launchd" } install_service() { installable="" if [ -d "$MY_ROOT/etc/systemd/system" ]; then install_for_systemd installable="true" fi if [ -d "/Library/LaunchDaemons" ]; then install_for_launchd installable="true" fi if [ -z "$installable" ]; then echo "" echo "Unknown system service init type. You must install as a system service manually." echo '(please file a bug with the output of "uname -a")' echo "" fi } ## END SERVICE_INSTALL ## set -e set -u # Dependencies dap_dl_bash "https://git.daplie.com/coolaj86/node-install-script/raw/master/setup-min.sh" # Install npm install -g 'git+https://git@git.daplie.com/Daplie/goldilocks.js.git#v1' # Install Service install_service