chiark / gitweb /
add new `fdroid server init` command for setting up the dir on the server
authorHans-Christoph Steiner <hans@eds.org>
Mon, 2 Dec 2013 22:29:51 +0000 (17:29 -0500)
committerHans-Christoph Steiner <hans@eds.org>
Wed, 4 Dec 2013 20:27:13 +0000 (15:27 -0500)
This is quite simple, but makes the user experience consistent when setting
up repos: run init then update locally, then run init then update on the
server.

This patch also includes PEP8 formatting fixes

fdroidserver/server.py

index 5a6cc61d684b942f16cd384bf58e5656647829f5..3ed2a59eb2b15c503b5434ea11c5849f8275b0d5 100644 (file)
@@ -26,6 +26,7 @@ import common
 config = None
 options = None
 
+
 def main():
 
     global config, options
@@ -42,30 +43,38 @@ def main():
         print "Specify a single command"
         sys.exit(1)
 
-    if args[0] != 'update':
-        print "The only command currently supported is 'update'"
+    if args[0] != 'init' and args[0] != 'update':
+        print "The only commands currently supported are 'init' and 'update'"
         sys.exit(1)
 
+    host, fdroiddir = config['serverwebroot'].split(':')
+
     repodirs = ['repo']
     if config['archive_older'] != 0:
         repodirs.append('archive')
 
     for repodir in repodirs:
-        index = os.path.join(repodir, 'index.xml')
-        indexjar = os.path.join(repodir, 'index.jar')
-        if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
-                '--exclude', index, '--exclude', indexjar, repodir, config['serverwebroot']]) != 0:
-            sys.exit(1)
-        if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
-                index, config['serverwebroot'] + '/' + repodir]) != 0:
-            sys.exit(1)
-        if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
-                indexjar, config['serverwebroot'] + '/' + repodir]) != 0:
-            sys.exit(1)
+        if args[0] == 'init':
+            if subprocess.call(['ssh', '-v', host,
+                                'mkdir -p', fdroiddir + '/' + repodir]) != 0:
+                sys.exit(1)
+        elif args[0] == 'update':
+            index = os.path.join(repodir, 'index.xml')
+            indexjar = os.path.join(repodir, 'index.jar')
+            if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
+                                '--exclude', index, '--exclude', indexjar,
+                                repodir, config['serverwebroot']]) != 0:
+                sys.exit(1)
+            if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
+                                index,
+                                config['serverwebroot'] + '/' + repodir]) != 0:
+                sys.exit(1)
+            if subprocess.call(['rsync', '-u', '-v', '-r', '--delete',
+                                indexjar,
+                                config['serverwebroot'] + '/' + repodir]) != 0:
+                sys.exit(1)
 
     sys.exit(0)
 
 if __name__ == "__main__":
     main()
-
-