chiark / gitweb /
import: get build dir from settings.gradle
[fdroidserver.git] / fdroidserver / import.py
index ba2f934215af14907616aebfbbe986cffd5522e6..550e7469398d166bcfc0db35b5fec2bf244bb4f3 100644 (file)
@@ -32,6 +32,9 @@ from . import metadata
 from .exception import FDroidException
 
 
+SETTINGS_GRADLE = re.compile('''include\s+['"]:([^'"]*)['"]''')
+
+
 # Get the repo type and address from the given web page. The page is scanned
 # in a rather naive manner for 'git clone xxxx', 'hg clone xxxx', etc, and
 # when one of these is found it's assumed that's the information we want.
@@ -133,7 +136,7 @@ def get_metadata_from_url(app, url):
         app.SourceCode = url + '/src'
         app.IssueTracker = url + '/issues'
         # Figure out the repo type and adddress...
-        repotype, repo = getrepofrompage(app.SourceCode)
+        repotype, repo = getrepofrompage(url)
         if not repotype:
             raise FDroidException("Unable to determine vcs type. " + repo)
     elif url.startswith('https://') and url.endswith('.git'):
@@ -180,6 +183,13 @@ def get_subdir(build_dir):
     if options.subdir:
         return os.path.join(build_dir, options.subdir)
 
+    settings_gradle = os.path.join(build_dir, 'settings.gradle')
+    if os.path.exists(settings_gradle):
+        with open(settings_gradle) as fp:
+            m = SETTINGS_GRADLE.search(fp.read())
+            if m:
+                return os.path.join(build_dir, m.group(1))
+
     return build_dir
 
 
@@ -193,7 +203,7 @@ def main():
     parser.add_argument("-u", "--url", default=None,
                         help=_("Project URL to import from."))
     parser.add_argument("-s", "--subdir", default=None,
-                        help=_("Path to main android project subdirectory, if not in root."))
+                        help=_("Path to main Android project subdirectory, if not in root."))
     parser.add_argument("-c", "--categories", default=None,
                         help=_("Comma separated list of categories."))
     parser.add_argument("-l", "--license", default=None,
@@ -304,7 +314,7 @@ def main():
         with open('build/.fdroidvcs-' + package, 'w') as f:
             f.write(app.RepoType + ' ' + app.Repo)
 
-        metadatapath = os.path.join('metadata', package + '.txt')
+        metadatapath = os.path.join('metadata', package + '.yml')
         metadata.write_metadata(metadatapath, app)
         logging.info("Wrote " + metadatapath)