1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
Description: add loading config from every path
Add loading config from ervery path
Separation data / program
Author: Jörg Frings-Fürst <jff@jff-webhosting.net>
Last-Update: 2014-05-12
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: trunk/mwcfeedserver.py
===================================================================
--- trunk.orig/mwcfeedserver.py
+++ trunk/mwcfeedserver.py
@@ -6,6 +6,7 @@
import http.server
import socketserver
import importlib
+import os
import sys
import getopt
@@ -31,13 +32,26 @@ for opt, arg in opts:
elif opt in ('-p', '--port'):
port = int(arg)
-config = importlib.import_module(configMod)
-
+#
+# add code to load config from nonsystem path
+# and change to datadir
+#
+try:
+ path = os.path.dirname(configMod)
+ fullname = os.path.basename(configMod)
+ sys.path.append(path)
+ config = importlib.import_module(fullname)
+except:
+ print('Error: loading config')
+ sys.exit(2)
handler = http.server.SimpleHTTPRequestHandler
httpd = socketserver.TCPServer((bind, port), handler)
print('Bond to ' + bind + ', listening on port ' + str(port))
-httpd.serve_forever()
-
+try:
+ httpd.serve_forever()
+except KeyboardInterrupt:
+ pass
+httpd.server_close()
Index: trunk/mwc.py
===================================================================
--- trunk.orig/mwc.py
+++ trunk/mwc.py
@@ -334,7 +334,7 @@ def pollWebsites():
if __name__ == "__main__":
- configMod = 'config'
+ configMod = '/etc/mwc/mwc-config'
dryrun = None
try:
@@ -351,7 +351,23 @@ if __name__ == "__main__":
elif opt in ('-d', '--dry-run'):
dryrun = arg
- config = importlib.import_module(configMod)
+ #
+ # add code to load config from nonsystem path
+ # and change to datadir
+ #
+ try:
+ path = os.path.dirname(configMod)
+ fullname = os.path.basename(configMod)
+ sys.path.append(path)
+ config = importlib.import_module(fullname)
+ except:
+ print('Error: loading config')
+ sys.exit(2)
+ try:
+ os.chdir(config.datadir)
+ except:
+ print('Error: datadir not found')
+ sys.exit(3)
if dryrun:
for site in config.sites:
|