mirror of
https://github.com/moparisthebest/HttpUploadComponent
synced 2024-11-22 00:42:21 -05:00
Make configfile and logfile configurable via commandline options
Use argparse to parse --config und --logfile so it can be better used from a startup script. Add Debian startup-script in contrib/
This commit is contained in:
parent
8bd4ad6803
commit
c3b41b2415
72
contrib/httpuploadcomponent
Executable file
72
contrib/httpuploadcomponent
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: HttpUploadComponent
|
||||||
|
# Required-Start: prosody
|
||||||
|
# Required-Stop: prosody
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Start HttpUploadComponent
|
||||||
|
# Description: HttpUploadComponent for prosody
|
||||||
|
### END INIT INFO
|
||||||
|
## more info: http://wiki.debian.org/LSBInitScripts
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
|
||||||
|
DAEMON=/usr/local/src/HttpUploadComponent/server.py
|
||||||
|
NAME=httpuploadcomponent
|
||||||
|
DESC=HttpUploadComponent
|
||||||
|
CONFIG=/etc/prosody/HttpUploadComponent.yml
|
||||||
|
LOGFILE=/var/log/prosody/httpuploadcomponent.log
|
||||||
|
PIDFILE=/var/run/${NAME}.pid
|
||||||
|
USER=prosody
|
||||||
|
export LOGNAME=$USER
|
||||||
|
|
||||||
|
test -x $DAEMON || exit 0
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function _start() {
|
||||||
|
start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid $USER:$USER --background --make-pidfile --exec $DAEMON -- --config $CONFIG --logfile $LOGFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
function _stop() {
|
||||||
|
start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --retry 3
|
||||||
|
rm -f $PIDFILE
|
||||||
|
}
|
||||||
|
|
||||||
|
function _status() {
|
||||||
|
start-stop-daemon --status --quiet --pidfile $PIDFILE
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
echo -n "Starting $DESC: "
|
||||||
|
_start
|
||||||
|
echo "ok"
|
||||||
|
;;
|
||||||
|
stop)
|
||||||
|
echo -n "Stopping $DESC: "
|
||||||
|
_stop
|
||||||
|
echo "ok"
|
||||||
|
;;
|
||||||
|
restart|force-reload)
|
||||||
|
echo -n "Restarting $DESC: "
|
||||||
|
_stop
|
||||||
|
sleep 1
|
||||||
|
_start
|
||||||
|
echo "ok"
|
||||||
|
;;
|
||||||
|
status)
|
||||||
|
echo -n "Status of $DESC: "
|
||||||
|
_status && echo "running" || echo "stopped"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
N=/etc/init.d/$NAME
|
||||||
|
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
15
server.py
15
server.py
@ -10,6 +10,7 @@ import hashlib
|
|||||||
import random
|
import random
|
||||||
import os
|
import os
|
||||||
import ssl
|
import ssl
|
||||||
|
import argparse
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from threading import Lock
|
from threading import Lock
|
||||||
try:
|
try:
|
||||||
@ -24,6 +25,8 @@ except ImportError:
|
|||||||
import sleekxmpp
|
import sleekxmpp
|
||||||
from sleekxmpp.componentxmpp import ComponentXMPP
|
from sleekxmpp.componentxmpp import ComponentXMPP
|
||||||
|
|
||||||
|
LOGLEVEL=logging.DEBUG
|
||||||
|
|
||||||
global files
|
global files
|
||||||
global files_lock
|
global files_lock
|
||||||
global config
|
global config
|
||||||
@ -165,13 +168,19 @@ if __name__ == "__main__":
|
|||||||
global files_lock
|
global files_lock
|
||||||
global config
|
global config
|
||||||
|
|
||||||
with open('config.yml','r') as ymlfile:
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-c", "--config", type=unicode, default='config.yml', help='Specify alternate config file.')
|
||||||
|
parser.add_argument("-l", "--logfile", type=unicode, default=None, help='File where the server log will be stored. If not specified log to stdout.')
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
with open(args.config,'r') as ymlfile:
|
||||||
config = yaml.load(ymlfile)
|
config = yaml.load(ymlfile)
|
||||||
|
|
||||||
files = set()
|
files = set()
|
||||||
files_lock = Lock()
|
files_lock = Lock()
|
||||||
logging.basicConfig(level=logging.DEBUG,
|
logging.basicConfig(level=LOGLEVEL,
|
||||||
format='%(levelname)-8s %(message)s')
|
format='%(asctime)-24s %(levelname)-8s %(message)s',
|
||||||
|
filename=args.logfile)
|
||||||
server = ThreadedHTTPServer(('0.0.0.0', config['http_port']), HttpHandler)
|
server = ThreadedHTTPServer(('0.0.0.0', config['http_port']), HttpHandler)
|
||||||
if 'keyfile' in config and 'certfile' in config:
|
if 'keyfile' in config and 'certfile' in config:
|
||||||
server.socket = ssl.wrap_socket(server.socket, keyfile=config['keyfile'], certfile=config['certfile'])
|
server.socket = ssl.wrap_socket(server.socket, keyfile=config['keyfile'], certfile=config['certfile'])
|
||||||
|
Loading…
Reference in New Issue
Block a user