]> Frank Brehm's Git Trees - scripts/root-bin.git/commitdiff
Continued with cleanup-pkg-keywords
authorFrank Brehm <frank@brehm-online.com>
Tue, 3 Mar 2015 22:05:59 +0000 (23:05 +0100)
committerFrank Brehm <frank@brehm-online.com>
Tue, 3 Mar 2015 22:05:59 +0000 (23:05 +0100)
cleanup-pkg-keywords

index 6cb4a94a4fd003ef5adc0ec714d18220035c2f84..012364ece1b0abf5ca6972ce09c68bacfb81c89d 100755 (executable)
@@ -20,14 +20,15 @@ from distutils.version import LooseVersion
 from pb_base.app import PbApplicationError
 from pb_base.app import PbApplication
 
-__version__ = LooseVersion('0.1.0')
+__version__ = LooseVersion('0.2.0')
 
 appname = os.path.basename(sys.argv[0])
 log = logging.getLogger(appname)
 cur_dir = os.getcwd()
 base_dir = cur_dir
 
-DEFAULT_PORTAGE_DIR = os.sep + os.path.join('etc', 'portage')
+DEFAULT_PORTAGE_DIR = os.path.join('etc', 'portage')
+DEFAULT_PKG_DIR = os.path.join('var', 'db', 'pkg')
 
 # =============================================================================
 class CleanupPkgKeywordsApp(PbApplication):
@@ -54,6 +55,8 @@ class CleanupPkgKeywordsApp(PbApplication):
 
         self.simulate = False
         self.root_dir = None
+        self.portage_dir = os.sep + DEFAULT_PORTAGE_DIR
+        self.pkg_dir = os.sep + DEFAULT_PKG_DIR
 
         super(CleanupPkgKeywordsApp, self).__init__(
             usage=usage,
@@ -109,6 +112,27 @@ class CleanupPkgKeywordsApp(PbApplication):
                     sys.stderr.write(msg + '\n')
                     sys.exit(1)
 
+                sys.stderr.write("Working in root directory %r ...\n" % (self.root_dir))
+
+                self.portage_dir = os.path.join(self.root_dir, DEFAULT_PORTAGE_DIR)
+                self.pkg_dir = os.path.join(self.root_dir, DEFAULT_PKG_DIR)
+
+        failed_dirs = []
+        if not os.path.exists(self.portage_dir) or not os.path.isdir(self.portage_dir):
+            failed_dirs.append(self.portage_dir)
+        if not os.path.exists(self.pkg_dir) or not os.path.isdir(self.pkg_dir):
+            failed_dirs.append(self.pkg_dir)
+
+        if failed_dirs:
+            msg = "This seems not to be a Gentoo system, because "
+            if len(failed_dirs) > 1:
+                msg += "the directories %s does not exist." % (', '.join(
+                    map(lambda x: repr(x), failed_dirs)))
+            else:
+                msg += "the directory %r does not exists." % (failed_dirs[0])
+            sys.stderr.write(msg + '\n')
+            sys.exit(5)
+
     # -------------------------------------------------------------------------
     def _run(self):
         """The underlaying startpoint of the application."""