chiark / gitweb /
lint: optionally check format
[fdroidserver.git] / fdroidserver / lint.py
index ed0e36960fa48f3b6379c5691acb3af4a2a9999e..5932bd618bcf6b7eaa1a27247ff181a92b34d326 100644 (file)
 
 from argparse import ArgumentParser
 import re
-import common
-import metadata
 import sys
 from sets import Set
 
+import common
+import metadata
+import rewritemeta
+
 config = None
 options = None
 
@@ -107,7 +109,7 @@ def check_regexes(app):
     for f, checks in regex_checks.iteritems():
         for m, r in checks:
             v = app.get_field(f)
-            t = metadata.metafieldtype(f)
+            t = metadata.fieldtype(f)
             if t == metadata.TYPE_MULTILINE:
                 for l in v.splitlines():
                     if m.match(l):
@@ -148,14 +150,13 @@ def check_ucm_tags(app):
 def check_char_limits(app):
     limits = config['char_limits']
 
-    summ_chars = len(app.Summary)
-    if summ_chars > limits['Summary']:
+    if len(app.Summary) > limits['Summary']:
         yield "Summary of length %s is over the %i char limit" % (
-            summ_chars, limits['Summary'])
+            len(app.Summary), limits['Summary'])
 
     if len(app.Description) > limits['Description']:
         yield "Description of length %s is over the %i char limit" % (
-            desc_charcount, limits['Description'])
+            len(app.Description), limits['Description'])
 
 
 def check_old_links(app):
@@ -307,6 +308,8 @@ def main():
     # Parse command line...
     parser = ArgumentParser(usage="%(prog)s [options] [APPID [APPID ...]]")
     common.setup_global_opts(parser)
+    parser.add_argument("-f", "--format", action="store_true", default=False,
+                        help="Also warn about formatting issues, like rewritemeta -l")
     parser.add_argument("appid", nargs='*', help="app-id in the form APPID")
     options = parser.parse_args()
 
@@ -338,6 +341,10 @@ def main():
                 ]:
             warns += check_func(app)
 
+        if options.format:
+            if not rewritemeta.proper_format(app):
+                warns.append("Run rewritemeta to fix formatting")
+
         if warns:
             anywarns = True
             for warn in warns: