]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - check-shebang.py
on -j define __jobs instead of _smp_mflags
[packages/rpm-build-tools.git] / check-shebang.py
index ecd0f60910a40b4e5dcf7cf845d2a9327eaae332..90075bc28f7b155bc0ef357609d2d608c225d200 100755 (executable)
@@ -19,6 +19,7 @@ rep = {
     'python3': [],
     'perl': [],
     'ruby': [],
+    'bash': [],
 }
 
 skip_files = [".h", ".c", ".cc", ".gif", ".png", ".jpg", ".ko", ".gz", ".o"]
@@ -39,7 +40,10 @@ if args.buildroot:
             if fext in skip_files:
                 continue
             fpath = os.path.join(root, name)
-            rpm_build_root_files.append(hash(fpath))
+            try:
+                rpm_build_root_files.append(hash(fpath))
+            except FileNotFoundError:
+                pass
     print("%s: Caching done." % (sys.argv[0]))
 
 for root, dirs, files in os.walk(args.sourcedir):
@@ -49,24 +53,29 @@ for root, dirs, files in os.walk(args.sourcedir):
             continue
 
         fpath = os.path.join(root, name)
-        with open(fpath, 'rt', encoding='utf-8', errors='replace') as f:
-            try:
-                fline = f.read(128)
-                f = io.StringIO(fline)
-                shebang = f.readline()
-            except UnicodeDecodeError as e:
-                print("%s: skipping file `%s': %s" % (sys.argv[0], fpath, e), file=sys.stderr)
-                continue
-            if re.compile(r'^#!\s*/usr/bin/env python\s').match(shebang) \
-                    or re.compile(r'^#!\s*/usr/bin/env\s+python2\s').match(shebang) \
-                    or re.compile(r'^#!\s*/usr/bin/python\s').match(shebang):
-                rep['python2'].append(fpath)
-            elif re.compile(r'^#!\s*/usr/bin/env\s+python3\s').match(shebang):
-                rep['python3'].append(fpath)
-            elif re.compile(r'^#!\s*/usr/bin/env\s+perl\s').match(shebang):
-                rep['perl'].append(fpath)
-            elif re.compile(r'^#!\s*/usr/bin/env\s+ruby\s').match(shebang):
-                rep['ruby'].append(fpath)
+        try:
+            with open(fpath, 'rt', encoding='utf-8', errors='replace') as f:
+                try:
+                    fline = f.read(128)
+                    f = io.StringIO(fline)
+                    shebang = f.readline()
+                except UnicodeDecodeError as e:
+                    print("%s: skipping file `%s': %s" % (sys.argv[0], fpath, e), file=sys.stderr)
+                    continue
+                if re.compile(r'^#!\s*/usr/bin/env python\s').match(shebang) \
+                        or re.compile(r'^#!\s*/usr/bin/env\s+python2\s').match(shebang) \
+                        or re.compile(r'^#!\s*/usr/bin/python\s').match(shebang):
+                    rep['python2'].append(fpath)
+                elif re.compile(r'^#!\s*/usr/bin/env\s+python3\s').match(shebang):
+                    rep['python3'].append(fpath)
+                elif re.compile(r'^#!\s*/usr/bin/env\s+perl\s').match(shebang):
+                    rep['perl'].append(fpath)
+                elif re.compile(r'^#!\s*/usr/bin/env\s+ruby\s').match(shebang):
+                    rep['ruby'].append(fpath)
+                elif re.compile(r'^#!\s*/usr/bin/env\s+bash\s').match(shebang):
+                    rep['bash'].append(fpath)
+        except FileNotFoundError:
+            pass
 
 def gf(cmd, files):
     newfiles = []
@@ -92,3 +101,4 @@ gf("%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python2(\s|$),#!%{__python}\\1,' -
 gf("%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python3(\s|$),#!%{__python3}\\1,' \\", rep['python3'])
 gf("%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+perl(\s|$),#!%{__perl}\\1,' \\", rep['perl'])
 gf("%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+ruby(\s|$),#!%{__ruby}\\1,' \\", rep['ruby'])
+gf("%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+bash(\s|$),#!/bin/bash\\1,' \\", rep['bash'])
This page took 0.048217 seconds and 4 git commands to generate.