#!/usr/bin/env bash # -*- coding: utf-8; mode: sh -*- # shellcheck disable=SC2119 # shellcheck source=utils/lib.sh source "$(dirname "${BASH_SOURCE[0]}")/lib.sh" # ---------------------------------------------------------------------------- # config # ---------------------------------------------------------------------------- FILTRON_ETC="/etc/filtron" SERVICE_NAME="filtron" SERVICE_USER="${SERVICE_NAME}" SERVICE_HOME="/home/${SERVICE_USER}" SERVICE_SYSTEMD_UNIT="${SYSTEMD_UNITS}/${SERVICE_NAME}.service" # shellcheck disable=SC2034 SERVICE_GROUP="${SERVICE_USER}" GO_ENV="${SERVICE_HOME}/.go_env" GO_PKG_URL="https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz" GO_TAR=$(basename "$GO_PKG_URL") # ---------------------------------------------------------------------------- usage(){ # ---------------------------------------------------------------------------- # shellcheck disable=SC1117 cat <&1 | prefix_stdout systemctl enable $SERVICE_NAME.service systemctl restart $SERVICE_NAME.service EOF tee_stderr <&1 | prefix_stdout systemctl status $SERVICE_NAME.service EOF wait_key } deactivate_server () { rst_title "De-Activate $SERVICE_NAME (service)" section echo tee_stderr <&1 | prefix_stdout systemctl stop $SERVICE_NAME.service systemctl disable $SERVICE_NAME.service EOF wait_key } assert_user() { rst_title "user $SERVICE_USER" section echo tee_stderr 1 < "$GO_ENV" <> ~/.profile EOF } remove_user() { rst_title "Drop $SERVICE_USER HOME" section if ask_yn "Do you really want to drop $SERVICE_USER home folder?"; then userdel -r -f "$SERVICE_USER" else rst_para "Leave HOME folder $(du -sh "$SERVICE_HOME") unchanged." fi } interactive_shell(){ echo "// exit with STRG-D" sudo -H -u ${SERVICE_USER} -i } _service_prefix="$SERVICE_USER@$(hostname) -->| " install_go(){ rst_title "Install Go in user's HOME" section rst_para "download and install go binary .." cache_download "${GO_PKG_URL}" "${GO_TAR}" tee_stderr 0.1 </dev/null && echo "Go Installation not found in PATH!?!" which go >/dev/null && go version && echo "congratulations -- Go installation OK :)" EOF wait_key } install_filtron() { tee_stderr <&1 EOF install_template "$FILTRON_ETC/rules.json" root root 644 } # ---------------------------------------------------------------------------- main "$@" # ----------------------------------------------------------------------------