~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to stop-loggerhead

Improve escaping of filenames in revision views. Fixes a couple of XSS holes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# This program is free software; you can redistribute it and/or modify
 
3
# it under the terms of the GNU General Public License as published by
 
4
# the Free Software Foundation; either version 2 of the License, or
 
5
# (at your option) any later version.
 
6
#
 
7
# This program is distributed in the hope that it will be useful,
 
8
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
9
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
10
# GNU General Public License for more details.
 
11
#
 
12
# You should have received a copy of the GNU General Public License
 
13
# along with this program; if not, write to the Free Software
 
14
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
 
 
16
"""A script for stopping the loggerhead process."""
 
17
 
 
18
import os
 
19
import sys
 
20
from optparse import OptionParser
 
21
 
 
22
home = os.path.realpath(os.path.dirname(__file__))
 
23
default_pidfile = os.path.join(home, 'loggerhead.pid')
 
24
parser = OptionParser(usage='usage: %prog [options]', version='%prog')
 
25
parser.add_option('-p', '--pidfile', dest="pidfile", default=default_pidfile,
 
26
                  help="override pidfile location")
 
27
 
 
28
options, args = parser.parse_args()
 
29
if len(args) > 0:
 
30
    parser.error('No filename arguments are used, only options.')
 
31
 
 
32
try:
 
33
    f = open(options.pidfile, 'r')
 
34
except IOError, e:
 
35
    print 'Pid file %s not found.' % (options.pidfile,)
 
36
    sys.exit(1)
 
37
 
 
38
pid = int(f.readline())
 
39
 
 
40
try:
 
41
    os.kill(pid, 0)
 
42
except OSError, e:
 
43
    print 'Stale pid file; server is not running.'
 
44
    sys.exit(1)
 
45
 
 
46
print
 
47
print 'Shutting down previous server @ pid %d.' % (pid,)
 
48
print
 
49
 
 
50
import signal
 
51
os.kill(pid, signal.SIGINT)