on master help sign in
utils/filtron.sh: add command 'update filtron'
3ed82a9Markus Heiser
utils/filtron.sh+36−14
@@ -12,8 +12,12 @@ source "$(dirname "${BASH_SOURCE[0]}")/lib.sh"
12FILTRON_ETC="/etc/filtron"
12FILTRON_ETC="/etc/filtron"
13
13
14FILTRON_RULES="$FILTRON_ETC/rules.json"
14FILTRON_RULES="$FILTRON_ETC/rules.json"
15+
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"
18
22
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")
30
34
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:
44
49
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:
51
57
52shell
58shell
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
62+update filtron
63+ Update filtron installation of user ${SERVICE_USER}
56activate
64activate
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"
72
80
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;;
76
84
77− shell)
85+ shell)
78− sudo_or_exit
86+ sudo_or_exit
79− interactive_shell
87+ interactive_shell
80− ;;
88+ ;;
81 show)
89 show)
82 case $2 in
90 case $2 in
83 service)
91 service)
84− sudo_or_exit
92+ sudo_or_exit
85− show_service
93+ show_service
86− ;;
94+ ;;
87 *) usage "$_usage"; exit 42;;
95 *) usage "$_usage"; exit 42;;
88 esac ;;
96 esac ;;
89 install)
97 install)
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;;
103+ esac ;;
104+ update)
105+ sudo_or_exit
106+ case $2 in
107+ filtron) update_filtron ;;
94 *) usage "$_usage"; exit 42;;
108 *) usage "$_usage"; exit 42;;
95 esac ;;
109 esac ;;
96 remove)
110 remove)
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;;
102 esac ;;
116 esac ;;
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
243}
257}
244
258
259+update_filtron() {
260+ rst_title "Update filtron" section
261+ echo
262+ tee_stderr <<EOF | sudo -i -u "$SERVICE_USER" 2>&1 | prefix_stdout "$_service_prefix"
263+go get -v -u github.com/asciimoo/filtron
264+EOF
265+}
266+
245show_service () {
267show_service () {
246 rst_title "service status & log"
268 rst_title "service status & log"
247 echo
269 echo
248 systemctl status filtron.service
270 systemctl status filtron.service
249 echo
271 echo
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"
251 echo
273 echo
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
255 done
277 done
256 return 0
278 return 0
257}
279}
utils/lib.sh+1−1
@@ -75,7 +75,7 @@ info_msg() { echo -e "INFO: $*"; }
75
75
76clean_stdin() {
76clean_stdin() {
77 if [[ $(uname -s) != 'Darwin' ]]; then
77 if [[ $(uname -s) != 'Darwin' ]]; then
78− while $(read -n1 -t 0.1); do : ; done
78+ while read -n1 -t 0.1; do : ; done
79 fi
79 fi
80}
80}
81
81