Package: debian-goodies

Attached is a simple patch for checkrestart which gives rpm support. I
use checkrestart extensively on debian servers and it would be great
to have it on rpm-based machines as well.

There also exist gentoo patches for checkrestart here ->
http://arcdraco.net/checkrestart

If rpm support would be acceptable, I'd be happy to re-work the above
patch so that it checks for the existence of "dpkg-query" and/or "rpm"
and proceeds accordingly.

Regards,
Marcus.
-- 
Marcus Furlong
--- checkrestart.orig   2012-02-22 15:54:38.000000000 +1100
+++ checkrestart        2012-02-22 16:10:19.000000000 +1100
@@ -139,10 +139,15 @@
 
     packages = {}
     diverted = None
-    dpkgQuery = ["dpkg-query", "--search"] + programs.keys()
-    dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE, stderr=None,
+    output = ''
+    for key in programs.keys():
+        dpkgQuery = ["rpm", "-q", "-f", "--queryformat=%{NAME}"] + [key]
+        dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE, stderr=None,
                                 env = lc_all_c_env)
-    for line in dpkgProc.stdout.readlines():
+        for line in dpkgProc.stdout.readlines():
+            output = output + "%s: %s \n" % (line, key)
+
+    for line in output.splitlines():
         if line.startswith('local diversion'):
             continue
         
@@ -175,12 +180,12 @@
     for package in packages.values():
         if package == 'util-linux':
             continue
-        dpkgQuery = ["dpkg-query", "--listfiles", package.name]
+        dpkgQuery = ["rpm", "-q", "-l", package.name]
         dpkgProc = subprocess.Popen(dpkgQuery, stdout=subprocess.PIPE, stderr=None,
                                 env = lc_all_c_env)
         for line in dpkgProc.stdout.readlines():
             path = line[:-1]
-            if path.startswith('/etc/init.d/'):
+            if path.startswith('/etc/init.d/') or path.startswith('/etc/rc.d/init.d'):
                 if path.endswith('.sh'):
                     continue
                 package.initscripts.add(path)

Reply via email to