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):
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,
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."""