aboutsummaryrefslogtreecommitdiff
path: root/whatmaps/debianpkg.py
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2014-04-20 15:21:36 +0200
committerGuido Günther <agx@sigxcpu.org>2014-04-21 20:21:58 +0200
commitfa359f748b844a218842d73fff13dcbce00dcd27 (patch)
tree1efe1866265cb35854f723ef1409a6cc906779ea /whatmaps/debianpkg.py
parentb067bf9d5cbab91da407b05ba75d3ba8ef72d18b (diff)
Split out and test DebianPkg
Diffstat (limited to 'whatmaps/debianpkg.py')
-rw-r--r--whatmaps/debianpkg.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/whatmaps/debianpkg.py b/whatmaps/debianpkg.py
new file mode 100644
index 0000000..8a3349d
--- /dev/null
+++ b/whatmaps/debianpkg.py
@@ -0,0 +1,42 @@
+# vim: set fileencoding=utf-8 :
+#
+# (C) 2010,2014 Guido Günther <agx@sigxcpu.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import re
+
+from . pkg import Pkg
+
+class DebianPkg(Pkg):
+ type = 'Debian'
+ _init_script_re = re.compile('/etc/init.d/[\w\-\.]')
+ _list_contents = ['dpkg-query', '-L', '${pkg_name}' ]
+
+ def __init__(self, name):
+ Pkg.__init__(self, name)
+
+ @property
+ def services(self):
+ if self._services != None:
+ return self._services
+
+ self._services = []
+ contents = self._get_contents()
+ # Only supports sysvinit so far:
+ for line in contents:
+ if self._init_script_re.match(line):
+ self._services.append(os.path.basename(line.strip()))
+ return self._services
+