mirror of
https://github.com/kiviktnm/decman.git
synced 2026-09-19 12:08:28 +00:00
Add enabled_modules & created_files to Store
This commit is contained in:
+15
-2
@@ -52,6 +52,10 @@ def main():
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="don't enable/disable systemd units")
|
||||
parser.add_argument("--no-commands",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="don't run user specified commands")
|
||||
parser.add_argument("--upgrade-devel",
|
||||
action="store_true",
|
||||
default=False,
|
||||
@@ -137,7 +141,7 @@ def _set_up(store: l.Store, args):
|
||||
sys.path.append(".")
|
||||
exec(content)
|
||||
|
||||
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
|
||||
return args.print, not args.no_packages, not args.no_foreign_packages, not args.no_files, not args.no_systemd_units, not args.no_commands, args.upgrade_devel, args.force_build
|
||||
|
||||
|
||||
class Core:
|
||||
@@ -146,7 +150,7 @@ class Core:
|
||||
"""
|
||||
|
||||
def __init__(self, store: l.Store, 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.only_print, self.update_packages, self.update_foreign_packages, self.update_files, self.update_units, self.run_commands, self.upgrade_devel, self.force_build = opts
|
||||
|
||||
self.store = store
|
||||
self.source = _resolve_source()
|
||||
@@ -179,7 +183,14 @@ class Core:
|
||||
if self.update_units:
|
||||
self._enable_units()
|
||||
|
||||
if self.run_commands:
|
||||
self._run_modules()
|
||||
all_enabled_modules = {}
|
||||
for mod, version in self.source.all_enabled_modules():
|
||||
all_enabled_modules[mod] = version
|
||||
# Enabled modules are really only stored for commands,
|
||||
# so they can be set only when the commands were exacuted.
|
||||
self.store.enabled_modules = all_enabled_modules
|
||||
|
||||
def _disable_units(self):
|
||||
to_disable = self.source.units_to_disable(self.store)
|
||||
@@ -246,6 +257,8 @@ class Core:
|
||||
l.print_error(f"{e}")
|
||||
l.print_warning(f"Failed to remove file: {file}")
|
||||
|
||||
self.store.created_files = all_created
|
||||
|
||||
def _enable_units(self):
|
||||
to_enable = self.source.units_to_enable(self.store)
|
||||
l.print_list_summary("Enabling systemd units:", to_enable)
|
||||
|
||||
@@ -112,16 +112,16 @@ class TestSource(unittest.TestCase):
|
||||
self.enabled_module = EnabledTestModule()
|
||||
self.existing_module = ExistingTestModule()
|
||||
self.existing_module_changed = ExistingChangedVersionTestModule()
|
||||
modules = [
|
||||
modules = {
|
||||
self.enabled_module,
|
||||
self.disabled_module,
|
||||
self.existing_module,
|
||||
self.existing_module_changed,
|
||||
]
|
||||
}
|
||||
source = Source(
|
||||
pacman_packages=["p1", "p2", "p3"],
|
||||
aur_packages=["A1", "A2", "A3"],
|
||||
user_packages=[
|
||||
pacman_packages={"p1", "p2", "p3"},
|
||||
aur_packages={"A1", "A2", "A3"},
|
||||
user_packages={
|
||||
UserPackage(
|
||||
pkgname="U1",
|
||||
version="1",
|
||||
@@ -134,10 +134,10 @@ class TestSource(unittest.TestCase):
|
||||
dependencies=["d2"],
|
||||
git_url="/am/url/yes",
|
||||
)
|
||||
],
|
||||
ignored_packages=["i1", "i2"],
|
||||
systemd_units=["1.service", "2.timer"],
|
||||
systemd_user_units={"user": ["u1.service", "u2.timer"]},
|
||||
},
|
||||
ignored_packages={"i1", "i2"},
|
||||
systemd_units={"1.service", "2.timer"},
|
||||
systemd_user_units={"user": {"u1.service", "u2.timer"}},
|
||||
modules=modules,
|
||||
files={},
|
||||
directories={},
|
||||
@@ -173,6 +173,12 @@ class TestSource(unittest.TestCase):
|
||||
self.store = store
|
||||
self.currently_installed_packages = currently_installed_packages
|
||||
|
||||
def test_all_enabled_modules(self):
|
||||
enabled_modules = [("Enabled", "1"), ("Existing", "1"),
|
||||
("ExistingChanged", "2")]
|
||||
self.assertCountEqual(self.source.all_enabled_modules(),
|
||||
enabled_modules)
|
||||
|
||||
def test_files_to_remove(self):
|
||||
created_files = ["/test/file1", "/test/file4"]
|
||||
self.assertCountEqual(
|
||||
|
||||
Reference in New Issue
Block a user