chiark / gitweb /
Push index to server last
[fdroidserver.git] / fdroidserver / server.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # server.py - part of the FDroid server tools
5 # Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com
6 #
7 # This program is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU Affero General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # This program is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU Affero General Public License for more details.
16 #
17 # You should have received a copy of the GNU Affero General Public License
18 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
19
20 import sys
21 import os
22 import subprocess
23 from optparse import OptionParser
24
25 def main():
26
27     #Read configuration...
28     execfile('config.py', globals())
29
30     # Parse command line...
31     parser = OptionParser()
32     parser.add_option("-v", "--verbose", action="store_true", default=False,
33                       help="Spew out even more information than normal")
34     (options, args) = parser.parse_args()
35
36     if len(args) != 1:
37         print "Specify a single command"
38         sys.exit(1)
39
40     if args[0] != 'update':
41         print "The only command currently supported is 'update'"
42         sys.exit(1)
43
44     if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', '--exclude', 'repo/index.xml', '--exclude', 'repo/index.jar', 'repo', serverwebroot]) != 0:
45         sys.exit(1)
46     if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', 'repo/index.xml', serverwebroot + '/repo']) != 0:
47         sys.exit(1)
48     if subprocess.call(['rsync', '-u', '-v', '-r', '--delete', 'repo/index.jar', serverwebroot + '/repo']) != 0:
49         sys.exit(1)
50
51     sys.exit(0)
52
53 if __name__ == "__main__":
54     main()
55
56