Add --no-foreign-packages option

This commit is contained in:
Kivi Kaitaniemi
2024-05-11 14:42:13 +03:00
parent e441bce524
commit 005299b9a4
+41 -35
View File
@@ -19,35 +19,6 @@ def main():
Main entry for the CLI app Main entry for the CLI app
""" """
if not _is_root():
l.print_error("Not running as root. Please run decman as root.")
sys.exit(1)
original_wd = os.getcwd()
try:
store = l.Store.restore()
opts = _set_up(store)
Core(store, opts).run()
except err.UserFacingError as error:
l.print_error(error.user_facing_msg)
for line in traceback.format_exc().splitlines():
l.print_debug(line)
sys.exit(1)
# Save even when an error has occurred, since this avoids repeating steps like building pkgs.
try:
store.save()
except err.UserFacingError as error:
l.print_error(error.user_facing_msg)
for line in traceback.format_exc().splitlines():
l.print_debug(line)
sys.exit(1)
os.chdir(original_wd)
def _set_up(store: l.Store):
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
prog="decman", prog="decman",
description= description=
@@ -64,10 +35,15 @@ def _set_up(store: l.Store):
help= help=
"print what would happen as a result of running decman (doesn't print removed files)" "print what would happen as a result of running decman (doesn't print removed files)"
) )
parser.add_argument("--no-packages", parser.add_argument(
"--no-packages",
action="store_true", action="store_true",
default=False, default=False,
help="don't upgrade any packages") help="don't upgrade any packages (including foreign packages)")
parser.add_argument("--no-foreign-packages",
action="store_true",
default=False,
help="don't upgrade foreign packages")
parser.add_argument("--no-files", parser.add_argument("--no-files",
action="store_true", action="store_true",
default=False, default=False,
@@ -87,6 +63,36 @@ def _set_up(store: l.Store):
help="force building of packages that are already cached") help="force building of packages that are already cached")
args = parser.parse_args() args = parser.parse_args()
if not _is_root():
l.print_error("Not running as root. Please run decman as root.")
sys.exit(1)
original_wd = os.getcwd()
try:
store = l.Store.restore()
opts = _set_up(store, args)
Core(store, opts).run()
except err.UserFacingError as error:
l.print_error(error.user_facing_msg)
for line in traceback.format_exc().splitlines():
l.print_debug(line)
sys.exit(1)
# Save even when an error has occurred, since this avoids repeating steps like building pkgs.
try:
store.save()
except err.UserFacingError as error:
l.print_error(error.user_facing_msg)
for line in traceback.format_exc().splitlines():
l.print_debug(line)
sys.exit(1)
os.chdir(original_wd)
def _set_up(store: l.Store, args):
source = store.source_file source = store.source_file
source_changed = False source_changed = False
if args.source is not None: if args.source is not None:
@@ -127,7 +133,7 @@ def _set_up(store: l.Store):
sys.path.append(".") sys.path.append(".")
exec(content) exec(content)
return args.print, not args.no_packages, not args.no_files, not args.no_systemd_units, args.upgrade_devel, args.force_build return args.print, not args.no_packages, not args.no_foreign_packages, not args.no_files, not args.no_systemd_units, args.upgrade_devel, args.force_build
class Core: class Core:
@@ -136,7 +142,7 @@ class Core:
""" """
def __init__(self, store: l.Store, opts): def __init__(self, store: l.Store, opts):
self.only_print, self.update_packages, self.update_files, self.update_units, self.upgrade_devel, self.force_build = opts self.only_print, self.update_packages, self.update_foreign_packages, self.update_files, self.update_units, self.upgrade_devel, self.force_build = opts
self.store = store self.store = store
self.source = _resolve_source() self.source = _resolve_source()
@@ -194,7 +200,7 @@ class Core:
l.print_summary("Upgrading packages.") l.print_summary("Upgrading packages.")
if not self.only_print: if not self.only_print:
self.pacman.upgrade() self.pacman.upgrade()
if conf.enable_fpm: if conf.enable_fpm and self.update_foreign_packages:
self.fpm.upgrade(self.upgrade_devel, self.force_build, self.fpm.upgrade(self.upgrade_devel, self.force_build,
self.source.ignored_packages) self.source.ignored_packages)
@@ -210,7 +216,7 @@ class Core:
if not self.only_print: if not self.only_print:
self.pacman.install(to_install_pacman) self.pacman.install(to_install_pacman)
if conf.enable_fpm: if conf.enable_fpm and self.update_foreign_packages:
self.fpm.install(to_install_fpm, force=self.force_build) self.fpm.install(to_install_fpm, force=self.force_build)
def _create_and_remove_files(self): def _create_and_remove_files(self):