]> code.delx.au - monosys/blobdiff - bin/pacorphan
pacorphan: Skip blank lines
[monosys] / bin / pacorphan
index f5211953e3fa70ecf8ef3ef3b14eaf1490c6e3e9..2d4b21dc46e71d07c9e46e617117c518c612f1e0 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/python3
 
 import codecs
 import subprocess
@@ -7,12 +7,11 @@ import sys
 
 PACORPHAN_PATH = os.path.expanduser("~/.pacorphan")
 
-keep_pkg_list = []
-mark_explicit_list = []
-need_install_list = []
-unneeded_pkg_list = []
-installed_pkg_list = []
-explicit_pkg_list = []
+def run(cmd):
+    for line in subprocess.check_output(cmd).decode("utf-8").split("\n"):
+        line = line.strip()
+        if line:
+            yield line
 
 def strip_comment(line):
     pos = line.find("#")
@@ -20,26 +19,33 @@ def strip_comment(line):
         line = line[:pos]
     return line.strip()
 
-for dirpath, dirnames, filenames in os.walk(PACORPHAN_PATH):
-    for filename in filenames:
-        if filename.startswith("."):
-            continue
-        filename = os.path.join(dirpath, filename)
-        for pkg in codecs.open(filename, "r", "utf-8"):
-            pkg = strip_comment(pkg)
-            if pkg in keep_pkg_list:
-                print("# Duplicate entry: " + pkg)
-            if pkg:
-                keep_pkg_list.append(pkg.strip())
-
-for pkg in subprocess.check_output(["pacman", "-Qq"]).decode("utf-8").split():
-    installed_pkg_list.append(pkg.strip())
-
-for pkg in subprocess.check_output(["pacman", "-Qtq"]).decode("utf-8").split():
-    unneeded_pkg_list.append(pkg.strip())
-
-for pkg in subprocess.check_output(["pacman", "-Qeq"]).decode("utf-8").split():
-    explicit_pkg_list.append(pkg.strip())
+
+keep_pkg_list = []
+mark_explicit_list = []
+need_install_list = []
+unneeded_pkg_list = []
+installed_pkg_list = []
+explicit_pkg_list = []
+
+for filename in os.listdir(PACORPHAN_PATH):
+    if filename.startswith("."):
+        continue
+    filename = os.path.join(PACORPHAN_PATH, filename)
+    for pkg in codecs.open(filename, "r", "utf-8"):
+        pkg = strip_comment(pkg)
+        if pkg in keep_pkg_list:
+            print("# Duplicate entry: " + pkg)
+        if pkg:
+            keep_pkg_list.append(pkg.strip())
+
+for pkg in run(["pacman", "-Qq"]):
+    installed_pkg_list.append(pkg)
+
+for pkg in run(["pacman", "-Qtq"]):
+    unneeded_pkg_list.append(pkg)
+
+for pkg in run(["pacman", "-Qeq"]):
+    explicit_pkg_list.append(pkg)
 
 
 for pkg in keep_pkg_list: