chiark / gitweb /
Use shorter and non-redundant 'or' clauses for 'if True else' assignments
[fdroidserver.git] / fdroidserver / lint.py
index 261a20170a33187c1969beb2cedc499f991eb3f5..123a6441edba45f0b8a45e01531aa987b638b425 100644 (file)
@@ -73,6 +73,10 @@ regex_warnings = {
         (re.compile(r'.*[^sS]://gitorious\.org/.*'),
          "gitorious URLs should always use https:// not http://"),
         ],
+    'License': [
+        (re.compile(r'^(|None|Unknown)$'),
+         "No license specified"),
+        ],
     'Description': [
         (re.compile(r'^No description available$'),
          "Description yet to be filled"),
@@ -98,9 +102,9 @@ regex_pedantic = {
         ],
     'Repo': [
         (re.compile(r'^http://.*'),
-         "if https:// is available, use it instead of http://"),
+         "use https:// if available"),
         (re.compile(r'^svn://.*'),
-         "if https:// is available, use it instead of svn://"),
+         "use https:// if available"),
         ],
     'Issue Tracker': [
         (re.compile(r'.*code\.google\.com/p/[^/]+/issues/.*'),
@@ -109,6 +113,8 @@ regex_pedantic = {
          "/issues is often enough on its own"),
         ],
     'Summary': [
+        (re.compile(r'^[a-z]'),
+         "No capitalization was done"),
         (re.compile(r'.*\bandroid\b.*', re.IGNORECASE),
          "No need to specify that the app is for Android"),
         (re.compile(r'.*\b(app|application)\b.*', re.IGNORECASE),
@@ -144,10 +150,12 @@ def main():
 
     # Parse command line...
     parser = OptionParser(usage="Usage: %prog [options] [APPID [APPID ...]]")
-    parser.add_option("-p", "--pedantic", action="store_true", default=False,
-                      help="Show pedantic warnings that might give false positives")
     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("-p", "--pedantic", action="store_true", default=False,
+                      help="Show pedantic warnings that might give false positives")
     (options, args) = parser.parse_args()
 
     config = common.read_config(options)
@@ -164,7 +172,7 @@ def main():
             continue
 
         for build in app['builds']:
-            if 'commit' in build and 'disable' not in build:
+            if build['commit'] and not build['disable']:
                 lastcommit = build['commit']
 
         # Potentially incorrect UCM
@@ -173,10 +181,6 @@ def main():
             pwarn("Last used commit '%s' looks like a tag, but Update Check Mode is '%s'" % (
                 lastcommit, app['Update Check Mode']))
 
-        # No proper license
-        if app['License'] in ('Unknown', 'None', ''):
-            warn("License was not set")
-
         # Summary size limit
         summ_chars = len(app['Summary'])
         if summ_chars > config['char_limits']['Summary']:
@@ -185,7 +189,7 @@ def main():
 
         # Redundant summaries
         summary = app['Summary']
-        name = str(app['Name'] if app['Name'] else app['Auto Name'])
+        name = app['Name'] or app['Auto Name']
         if summary and name:
             summary_l = summary.lower()
             name_l = name.lower()
@@ -222,17 +226,22 @@ def main():
 
         # Build warnings
         for build in app['builds']:
-            for n in ['master', 'origin/', 'default', 'trunk']:
-                if 'commit' in build:
-                    if build['commit'].startswith(n):
-                        warn("Branch '%s' used as commit in build '%s'" % (
-                            n, build['version']))
-                if 'srclibs' in build:
-                    for srclib in build['srclibs']:
-                        ref = srclib.split('@')[1].split('/')[0]
-                        if ref.startswith(n):
-                            warn("Branch '%s' used as commit in srclib '%s'" % (
-                                n, srclib))
+            for s in ['master', 'origin/', 'default', 'trunk']:
+                if build['commit'] and build['commit'].startswith(s):
+                    warn("Branch '%s' used as commit in build '%s'" % (
+                        s, build['version']))
+                for srclib in build['srclibs']:
+                    ref = srclib.split('@')[1].split('/')[0]
+                    if ref.startswith(s):
+                        warn("Branch '%s' used as commit in srclib '%s'" % (
+                            s, srclib))
+            for s in ['git clone', 'svn checkout', 'svn co', 'hg clone']:
+                for flag in ['init', 'prebuild', 'build']:
+                    if not build[flag]:
+                        continue
+                    if s in build[flag]:
+                        # TODO: This should not be pedantic!
+                        pwarn("'%s' used in %s '%s'" % (s, flag, build[flag]))
 
         if not appid:
             print