chiark / gitweb /
Switch all headers to python3
[fdroidserver.git] / fdroidserver / init.py
index c49cb303a3932104923527d9da4c9e04e993ecc7..3d8679ffced958593a9776efb2e2356bca14398a 100644 (file)
@@ -1,5 +1,4 @@
-#!/usr/bin/env python2
-# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
 #
 # update.py - part of the FDroid server tools
 # Copyright (C) 2010-2013, Ciaran Gultnieks, ciaran@ciarang.com
@@ -25,7 +24,7 @@ import re
 import shutil
 import socket
 import sys
-from optparse import OptionParser
+from argparse import ArgumentParser
 import logging
 
 import common
@@ -50,28 +49,33 @@ def main():
     global options, config
 
     # Parse command line...
-    parser = OptionParser()
-    parser.add_option("-v", "--verbose", action="store_true", default=False,
-                      help="Spew out even more information than normal")
-    parser.add_option("-q", "--quiet", action="store_true", default=False,
-                      help="Restrict output to warnings and errors")
-    parser.add_option("-d", "--distinguished-name", default=None,
-                      help="X.509 'Distiguished Name' used when generating keys")
-    parser.add_option("--keystore", default=None,
-                      help="Path to the keystore for the repo signing key")
-    parser.add_option("--repo-keyalias", default=None,
-                      help="Alias of the repo signing key in the keystore")
-    parser.add_option("--android-home", default=None,
-                      help="Path to the Android SDK (sometimes set in ANDROID_HOME)")
-    parser.add_option("--no-prompt", action="store_true", default=False,
-                      help="Do not prompt for Android SDK path, just fail")
-    (options, args) = parser.parse_args()
+    parser = ArgumentParser()
+    common.setup_global_opts(parser)
+    parser.add_argument("-d", "--distinguished-name", default=None,
+                        help="X.509 'Distiguished Name' used when generating keys")
+    parser.add_argument("--keystore", default=None,
+                        help="Path to the keystore for the repo signing key")
+    parser.add_argument("--repo-keyalias", default=None,
+                        help="Alias of the repo signing key in the keystore")
+    parser.add_argument("--android-home", default=None,
+                        help="Path to the Android SDK (sometimes set in ANDROID_HOME)")
+    parser.add_argument("--no-prompt", action="store_true", default=False,
+                        help="Do not prompt for Android SDK path, just fail")
+    options = parser.parse_args()
 
     # find root install prefix
     tmp = os.path.dirname(sys.argv[0])
+    examplesdir = None
     if os.path.basename(tmp) == 'bin':
-        prefix = os.path.dirname(tmp)
-        examplesdir = prefix + '/share/doc/fdroidserver/examples'
+        egg_link = os.path.join(tmp, '..', 'local/lib/python2.7/site-packages/fdroidserver.egg-link')
+        if os.path.exists(egg_link):
+            # installed from local git repo
+            examplesdir = os.path.join(open(egg_link).readline().rstrip(), 'examples')
+        else:
+            # try .egg layout
+            examplesdir = os.path.dirname(os.path.dirname(__file__)) + '/share/doc/fdroidserver/examples'
+            if not os.path.exists(examplesdir):  # use UNIX layout
+                examplesdir = os.path.dirname(tmp) + '/share/doc/fdroidserver/examples'
     else:
         # we're running straight out of the git repo
         prefix = os.path.normpath(os.path.join(os.path.dirname(__file__), '..'))
@@ -228,7 +232,7 @@ def main():
     logging.info('  Android SDK:\t\t\t' + config['sdk_path'])
     if aapt:
         logging.info('  Android SDK Build Tools:\t' + os.path.dirname(aapt))
-    logging.info('  Android NDK r10d (optional):\t$ANDROID_NDK')
+    logging.info('  Android NDK r10e (optional):\t$ANDROID_NDK')
     logging.info('  Keystore for signing key:\t' + keystore)
     if repo_keyalias is not None:
         logging.info('  Alias for key in store:\t' + repo_keyalias)