@@ -12,8 +12,12 @@ source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
12FILTRON_ETC="/etc/filtron"
12FILTRON_ETC="/etc/filtron"
14FILTRON_RULES="$FILTRON_ETC/rules.json"
14FILTRON_RULES="$FILTRON_ETC/rules.json"
16+# shellcheck disable=SC2034
15FILTRON_API="127.0.0.1:4005"
17FILTRON_API="127.0.0.1:4005"
18+# shellcheck disable=SC2034
16FILTRON_LISTEN="127.0.0.1:4004"
19FILTRON_LISTEN="127.0.0.1:4004"
20+# shellcheck disable=SC2034
17FILTRON_TARGET="127.0.0.1:8888"
21FILTRON_TARGET="127.0.0.1:8888"
19SERVICE_NAME="filtron"
23SERVICE_NAME="filtron"
@@ -28,6 +32,7 @@ GO_ENV="${SERVICE_HOME}/.go_env"
28GO_PKG_URL="https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz"
32GO_PKG_URL="https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz"
29GO_TAR=$(basename "$GO_PKG_URL")
33GO_TAR=$(basename "$GO_PKG_URL")
35+# shellcheck disable=SC2034
31CONFIG_FILES=(
36CONFIG_FILES=(
32 "${FILTRON_RULES}"
37 "${FILTRON_RULES}"
33 "${SERVICE_SYSTEMD_UNIT}"
38 "${SERVICE_SYSTEMD_UNIT}"
@@ -44,6 +49,7 @@ usage:
45 $(basename "$0") shell
50 $(basename "$0") shell
46 $(basename "$0") install [all|user]
51 $(basename "$0") install [all|user]
52+ $(basename "$0") update [filtron]
47 $(basename "$0") remove [all]
53 $(basename "$0") remove [all]
48 $(basename "$0") activate [service]
54 $(basename "$0") activate [service]
49 $(basename "$0") deactivate [service]
55 $(basename "$0") deactivate [service]
@@ -51,8 +57,10 @@ usage:
53 start interactive shell from user ${SERVICE_USER}
59 start interactive shell from user ${SERVICE_USER}
54−install / remove all
60+install / remove all
55 complete setup of filtron service
61 complete setup of filtron service
63+ Update filtron installation of user ${SERVICE_USER}
57 activate and start service daemon (systemd unit)
65 activate and start service daemon (systemd unit)
58deactivate service
66deactivate service
@@ -71,33 +79,39 @@ main(){
71 local _usage="ERROR: unknown or missing $1 command $2"
79 local _usage="ERROR: unknown or missing $1 command $2"
73 case $1 in
81 case $1 in
74− --source-only) ;;
82+ --source-only) ;;
75 -h|--help) usage; exit 0;;
83 -h|--help) usage; exit 0;;
78− sudo_or_exit
86+ sudo_or_exit
79− interactive_shell
87+ interactive_shell
82 case $2 in
90 case $2 in
84− sudo_or_exit
92+ sudo_or_exit
85− show_service
93+ show_service
87 *) usage "$_usage"; exit 42;;
95 *) usage "$_usage"; exit 42;;
90 sudo_or_exit
98 sudo_or_exit
91 case $2 in
99 case $2 in
92 all) install_all ;;
100 all) install_all ;;
93− user) assert_user ;;
101+ user) assert_user ;;
102+ *) usage "$_usage"; exit 42;;
107+ filtron) update_filtron ;;
94 *) usage "$_usage"; exit 42;;
108 *) usage "$_usage"; exit 42;;
97 sudo_or_exit
111 sudo_or_exit
98 case $2 in
112 case $2 in
99 all) remove_all;;
113 all) remove_all;;
100− user) remove_user ;;
114+ user) remove_user ;;
101 *) usage "$_usage"; exit 42;;
115 *) usage "$_usage"; exit 42;;
103 activate)
117 activate)
@@ -242,16 +256,24 @@ EOF
242 install_template --no-eval "$FILTRON_RULES" root root 644
256 install_template --no-eval "$FILTRON_RULES" root root 644
260+ rst_title "Update filtron" section
262+ tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_service_prefix"
263+go get -v -u github.com/asciimoo/filtron
245show_service () {
267show_service () {
246 rst_title "service status & log"
268 rst_title "service status & log"
248 systemctl status filtron.service
270 systemctl status filtron.service
250− read -s -n1 -t 5 -p "// use CTRL-C to stop monitoring the log"
272+ read -r -s -n1 -t 5 -p "// use CTRL-C to stop monitoring the log"
252 while true; do
274 while true; do
253− trap break 2
275+ trap break 2
254− journalctl -f -u filtron
276+ journalctl -f -u filtron