chiark / gitweb /
Move config.py keystore checks to after vars have been expanded
authorDaniel Martí <mvdan@mvdan.cc>
Mon, 17 Feb 2014 19:04:39 +0000 (20:04 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Mon, 17 Feb 2014 19:04:39 +0000 (20:04 +0100)
fdroidserver/common.py

index 5e424dae822716a6b25961a2249fd65457f183f3..29ff9d14b0eb1fac57e57128d1aa7ae1bcdc59d7 100644 (file)
@@ -49,6 +49,11 @@ def read_config(opts, config_file='config.py'):
 
     options = opts
 
+    config = {}
+
+    logging.info("Reading %s" % config_file)
+    execfile(config_file, config)
+
     defconfig = {
         'sdk_path': "$ANDROID_HOME",
         'ndk_path': "$ANDROID_NDK",
@@ -66,16 +71,6 @@ def read_config(opts, config_file='config.py'):
             'Description' : 1500
         }
     }
-    config = {}
-
-    logging.info("Reading %s" % config_file)
-    execfile(config_file, config)
-
-    if any(k in config for k in ["keystore", "keystorepass", "keypass"]):
-        st = os.stat(config_file)
-        if st.st_mode & stat.S_IRWXG or st.st_mode & stat.S_IRWXO:
-            logging.warn("unsafe permissions on {0} (should be 0600)!".format(config_file))
-
     for k, v in defconfig.items():
         if k not in config:
             config[k] = v
@@ -87,6 +82,18 @@ def read_config(opts, config_file='config.py'):
         v = os.path.expanduser(v)
         config[k] = os.path.expandvars(v)
 
+    if not config['sdk_path']:
+        logging.critical("$ANDROID_HOME is not set!")
+        sys.exit(3)
+    if not os.path.isdir(config['sdk_path']):
+        logging.critical("$ANDROID_HOME points to a non-existing directory!")
+        sys.exit(3)
+
+    if any(k in config for k in ["keystore", "keystorepass", "keypass"]):
+        st = os.stat(config_file)
+        if st.st_mode & stat.S_IRWXG or st.st_mode & stat.S_IRWXO:
+            logging.warn("unsafe permissions on {0} (should be 0600)!".format(config_file))
+
     return config
 
 # Given the arguments in the form of multiple appid:[vc] strings, this returns