annotate bin/sat @ 3162:b5c058c7692e

core (xmpp), plugin android: fixed DNS, SRV handling on Android: Android doesn't have a "/etc/resolv.conf" that Twisted expect. As a result, SRV records can't be checked correctly on connection. To work around that, DNS servers used on Android are checked when necessary (on Android plugin startup and on connectivity change), using some hacks, and Twisted is patched to use them.
author Goffi <goffi@goffi.org>
date Sun, 09 Feb 2020 23:56:42 +0100
parents 0b6d56a8f7e3
children e81ad34e8af8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
3c1cefd41186 added sat executable
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/bin/sh
225
fd9b7834d98a distutils installation script, draft
Goffi <goffi@goffi.org>
parents: 223
diff changeset
2
249
0ed5553b5313 added "debug" command to sat launcher script
Goffi <goffi@goffi.org>
parents: 234
diff changeset
3 DEBUG=""
1115
b56374a1f6d6 misc: daemon mode refactoring:
Goffi <goffi@goffi.org>
parents: 1114
diff changeset
4 DAEMON=""
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2562
diff changeset
5 PYTHON="python3"
3099
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
6
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
7 # for Python 3, "twistd" is named "twistd3" on some distros, so we check for it first
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
8 TWISTD="$(which twistd3 2>/dev/null)"
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
9 if [ $? -ne 0 ]; then
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
10 TWISTD="$(which twistd 2>/dev/null)"
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
11 fi
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
12 if [ $? -ne 0 ]; then
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
13 printf "Can't find \"twistd\" script, are you sure that Twisted is installed?\n"
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
14 exit 1
0b6d56a8f7e3 bin: look for twistd3 first:
Goffi <goffi@goffi.org>
parents: 3053
diff changeset
15 fi
234
a7079e835432 added stop command in sat.sh launching script
Goffi <goffi@goffi.org>
parents: 226
diff changeset
16
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
17 kill_process() {
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
18 # $1 is the file containing the PID to kill, $2 is the process name
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
19 if [ -f $1 ]; then
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
20 PID=`cat $1`
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
21 if ps -p $PID > /dev/null; then
1878
7a07f232e7cb misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents: 1548
diff changeset
22 printf "Terminating $2... "
1548
61c03265e133 launching script: use SIGTERM instead of SIGINT with the “stop” command
Goffi <goffi@goffi.org>
parents: 1151
diff changeset
23 kill $PID
1878
7a07f232e7cb misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents: 1548
diff changeset
24 while ps -p $PID > /dev/null; do
7a07f232e7cb misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents: 1548
diff changeset
25 sleep 0.2
7a07f232e7cb misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents: 1548
diff changeset
26 done
7a07f232e7cb misc (sat.sh): exec + better stop:
Goffi <goffi@goffi.org>
parents: 1548
diff changeset
27 printf "OK\n"
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
28 else
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
29 echo "No running process of ID $PID... removing PID file"
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
30 rm -f $1
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
31 fi
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
32 else
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
33 echo "$2 is probably not running (PID file doesn't exist)"
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
34 fi
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
35 }
4
3c1cefd41186 added sat executable
Goffi <goffi@goffi.org>
parents:
diff changeset
36
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
37 #We use python to parse config files
3053
8b36e5c3f28f misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents: 3028
diff changeset
38 eval `/usr/bin/env "$PYTHON" << PYTHONEND
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
39 from sat.core.constants import Const as C
3053
8b36e5c3f28f misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents: 3028
diff changeset
40 from sat.tools.config import fixLocalDir
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2562
diff changeset
41 from configparser import ConfigParser
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
42 from os.path import expanduser, join
463
ac568832a71a fixed lauching script
Goffi <goffi@goffi.org>
parents: 369
diff changeset
43 import sys
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
44
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
45 fixLocalDir() # XXX: tmp update code, will be removed in the future
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
46
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2562
diff changeset
47 config = ConfigParser(defaults=C.DEFAULT_CONFIG)
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
48 try:
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
49 config.read(C.CONFIG_FILES)
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
50 except:
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
51 print ("echo \"/!\\ Can't read main config ! Please check the syntax\";")
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
52 print ("exit 1")
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
53 sys.exit()
463
ac568832a71a fixed lauching script
Goffi <goffi@goffi.org>
parents: 369
diff changeset
54
ac568832a71a fixed lauching script
Goffi <goffi@goffi.org>
parents: 369
diff changeset
55 env=[]
ac568832a71a fixed lauching script
Goffi <goffi@goffi.org>
parents: 369
diff changeset
56 env.append("PID_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'pid_dir')),''))
930
cbf4122baae7 core, memory: use XDG recommended paths as the defaults for the config and local directories
souliane <souliane@mailoo.org>
parents: 587
diff changeset
57 env.append("LOG_DIR='%s'" % join(expanduser(config.get('DEFAULT', 'log_dir')),''))
1114
7293233970ab misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents: 1003
diff changeset
58 env.append("APP_NAME='%s'" % C.APP_NAME)
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
59 env.append("APP_NAME_FILE='%s'" % C.APP_NAME_FILE)
3028
ab2696e34d29 Python 3 port:
Goffi <goffi@goffi.org>
parents: 2562
diff changeset
60 print (";".join(env))
369
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
61 PYTHONEND
e83d0c21d64d launching script now read config files
Goffi <goffi@goffi.org>
parents: 358
diff changeset
62 `
1114
7293233970ab misc: stdout encoding management in python part of sat.sh
Goffi <goffi@goffi.org>
parents: 1003
diff changeset
63 APP_NAME="$APP_NAME"
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
64 PID_FILE="$PID_DIR$APP_NAME_FILE.pid"
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
65 LOG_FILE="$LOG_DIR$APP_NAME_FILE.log"
1151
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
66 RUNNING_MSG="$APP_NAME is running"
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
67 NOT_RUNNING_MSG="$APP_NAME is *NOT* running"
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
68
2562
26edcf3a30eb core, setup: huge cleaning:
Goffi <goffi@goffi.org>
parents: 2438
diff changeset
69 # if there is one argument which is "stop", then we kill SaT
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
70 if [ $# -eq 1 ];then
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
71 if [ $1 = "stop" ];then
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
72 kill_process $PID_FILE "$APP_NAME"
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
73 exit 0
1115
b56374a1f6d6 misc: daemon mode refactoring:
Goffi <goffi@goffi.org>
parents: 1114
diff changeset
74 elif [ $1 = "debug" ];then
1003
52ec79aa5bbe memory: fixes the method fixLocalDir for pid_dir and log_dir to use local_dir as default
souliane <souliane@mailoo.org>
parents: 931
diff changeset
75 echo "Launching $APP_NAME in debug mode"
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
76 DEBUG="--debug"
1115
b56374a1f6d6 misc: daemon mode refactoring:
Goffi <goffi@goffi.org>
parents: 1114
diff changeset
77 elif [ $1 = "fg" ];then
b56374a1f6d6 misc: daemon mode refactoring:
Goffi <goffi@goffi.org>
parents: 1114
diff changeset
78 echo "Launching $APP_NAME in foreground mode"
b56374a1f6d6 misc: daemon mode refactoring:
Goffi <goffi@goffi.org>
parents: 1114
diff changeset
79 DAEMON="n"
1151
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
80 elif [ $1 = "status" ];then
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
81 if [ -f $PID_FILE ]; then
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
82 PID=`cat $PID_FILE`
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
83 ps -p$PID 2>&1 > /dev/null
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
84 if [ $? = 0 ];then
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
85 echo "$RUNNING_MSG (pid: $PID)"
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
86 exit 0
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
87 else
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
88 echo "$NOT_RUNNING_MSG, but a pid file is present (bad exit ?): $PID_FILE"
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
89 exit 2
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
90 fi
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
91 else
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
92 echo "$NOT_RUNNING_MSG"
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
93 exit 1
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
94 fi
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
95 else
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
96 echo "bad argument, please use one of (stop, debug, fg, status) or no argument"
02c26e6630d0 misc (launch script): added a "status" command
Goffi <goffi@goffi.org>
parents: 1122
diff changeset
97 exit 1
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
98 fi
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
99 fi
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
100
1122
9ae01ccf89c1 core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents: 1115
diff changeset
101 MAIN_OPTIONS="-${DAEMON}o"
225
fd9b7834d98a distutils installation script, draft
Goffi <goffi@goffi.org>
parents: 223
diff changeset
102
1122
9ae01ccf89c1 core: sat bakcend is now a twisted plugin (no more .tac file)
Goffi <goffi@goffi.org>
parents: 1115
diff changeset
103 #Don't change the next lines
225
fd9b7834d98a distutils installation script, draft
Goffi <goffi@goffi.org>
parents: 223
diff changeset
104 AUTO_OPTIONS=""
249
0ed5553b5313 added "debug" command to sat launcher script
Goffi <goffi@goffi.org>
parents: 234
diff changeset
105 ADDITIONAL_OPTIONS="--pidfile $PID_FILE --logfile $LOG_FILE $AUTO_OPTIONS $DEBUG"
225
fd9b7834d98a distutils installation script, draft
Goffi <goffi@goffi.org>
parents: 223
diff changeset
106
226
d8bb72f00eec distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents: 225
diff changeset
107 log_dir=`dirname "$LOG_FILE"`
d8bb72f00eec distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents: 225
diff changeset
108 if [ ! -d $log_dir ] ; then
931
3b30e9f83d88 misc: sat stop would not kill all sat instances anymore
souliane <souliane@mailoo.org>
parents: 930
diff changeset
109 mkdir $log_dir
226
d8bb72f00eec distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents: 225
diff changeset
110 fi
d8bb72f00eec distutils install: fixed plugin import and log file path
Goffi <goffi@goffi.org>
parents: 225
diff changeset
111
3053
8b36e5c3f28f misc: don't import memory in launch script:
Goffi <goffi@goffi.org>
parents: 3028
diff changeset
112 exec /usr/bin/env $PYTHON $TWISTD $MAIN_OPTIONS $ADDITIONAL_OPTIONS $APP_NAME_FILE