From 762940decaff95abd69a0b9829d10a1205ada9e2 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Fri, 15 May 2026 13:42:44 +0000 Subject: [PATCH] autosign: minor cleanups --- mmgen/autosign/__init__.py | 35 +++++++--------------- mmgen/main_autosign.py | 61 +++++++++++++++++++------------------- test/cmdtest_d/autosign.py | 6 ++-- 3 files changed, 45 insertions(+), 57 deletions(-) diff --git a/mmgen/autosign/__init__.py b/mmgen/autosign/__init__.py index c69154fd..e438694b 100755 --- a/mmgen/autosign/__init__.py +++ b/mmgen/autosign/__init__.py @@ -37,12 +37,8 @@ class Autosign: 'gen_key', 'macos_ramdisk_setup', 'macos_ramdisk_delete', - 'enable_swap', - 'disable_swap', 'clean', - 'wipe_key', - 'list_led', - 'test_led') + 'wipe_key') mn_fmts = { 'mmgen': 'words', @@ -121,14 +117,6 @@ class Autosign: self.init_fixup() - if sys.platform == 'darwin': # test suite uses ‘fixed-up’ shm_dir - from ..platform.darwin.util import MacOSRamDisk - self.ramdisk = MacOSRamDisk( - cfg, - self.macOS_ramdisk_name, - self._get_macOS_ramdisk_size(), - path = self.shm_dir) - self.keyfile = self.mountpoint / 'autosign.key' if any(k in cfg._uopts for k in ('help', 'longhelp')): @@ -168,9 +156,13 @@ class Autosign: setattr(self, name, self.mountpoint / path) @cached_property - def swap(self): - from .swap_mgr import SwapMgr - return SwapMgr(self.cfg, ignore_zram=True) + def macos_ramdisk(self): # test suite uses ‘fixed-up’ shm_dir + from ..platform.darwin.util import MacOSRamDisk + return MacOSRamDisk( + self.cfg, + self.macOS_ramdisk_name, + self._get_macOS_ramdisk_size(), + path = self.shm_dir) async def check_daemons_running(self): from ..protocol import init_proto @@ -349,12 +341,6 @@ class Autosign: if not no_unmount: self.do_umount() - def macos_ramdisk_setup(self): - self.ramdisk.create() - - def macos_ramdisk_delete(self): - self.ramdisk.destroy() - def _get_macOS_ramdisk_size(self): from ..addrlist import AddrIdxList from ..platform.darwin.util import MacOSRamDisk, warn_ramdisk_too_small @@ -394,10 +380,11 @@ class Autosign: self.gen_key(no_unmount=True) - self.swap.disable() + from .swap_mgr import SwapMgr + SwapMgr(self.cfg, ignore_zram=True).disable() if sys.platform == 'darwin': - self.macos_ramdisk_setup() + self.macos_ramdisk.create() remove_wallet_dir() create_wallet_dir() diff --git a/mmgen/main_autosign.py b/mmgen/main_autosign.py index 11e88b4a..dbb65226 100755 --- a/mmgen/main_autosign.py +++ b/mmgen/main_autosign.py @@ -81,7 +81,7 @@ opts_data = { } } -def main(do_loop): +def main(*, asi, do_loop): asi.init_led() asi.init_exit_handler() @@ -110,26 +110,31 @@ cfg = Config( cmd = cfg._args[0] if len(cfg._args) == 1 else 'sign' if not cfg._args else cfg._usage() +if cmd in ('enable_swap', 'disable_swap', 'list_led', 'test_led'): + match cmd: + case 'enable_swap' | 'disable_swap': + from .autosign.swap_mgr import SwapMgr + sm = SwapMgr(cfg, ignore_zram=True) + sm.enable() if cmd == 'enable_swap' else sm.disable() + case 'list_led' | 'test_led': + from .led import LEDControl + if cmd == 'list_led': + msg( + 'Boards with tested LED signaling support:\n' + + '\n'.join(f' {v.name}' for k, v in LEDControl.boards.items() if k != 'dummy')) + else: + from .exception import NoLEDSupport + try: + LEDControl(enabled=True) + except NoLEDSupport: + ymsg('No LED signaling support for this platform') + else: + gmsg('LED signaling is supported by this platform!') + sys.exit(0) + if cmd not in Autosign.cmds + Autosign.util_cmds: die(1, f'‘{cmd}’: unrecognized command') -if cmd in ('test_led', 'list_led'): - from .led import LEDControl - match cmd: - case 'list_led': - msg( - 'Boards with tested LED signaling support:\n' + - '\n'.join(f' {v.name}' for k, v in LEDControl.boards.items() if k != 'dummy')) - case 'test_led': - from .exception import NoLEDSupport - try: - LEDControl(enabled=True) - except NoLEDSupport: - ymsg('No LED signaling support for this platform') - else: - gmsg('LED signaling is supported by this platform!') - sys.exit(0) - if cfg.xmrwallets: if cmd not in ('setup', 'xmr_setup'): die(1, '--xmrwallets is valid only for the ‘setup’ and ‘xmr_setup’ operations') @@ -149,8 +154,6 @@ asi = Autosign(cfg, cmd=cmd) cfg._post_init() match cmd: - case 'gen_key': - asi.gen_key() case 'setup': asi.do_mount() asi.clean_old_files() @@ -167,23 +170,21 @@ match cmd: asi.clean_old_files() asi.xmr_setup() asi.do_umount() - case 'macos_ramdisk_setup' | 'macos_ramdisk_delete': - if sys.platform != 'darwin': - die(1, f'The ‘{cmd}’ operation is for the macOS platform only') - getattr(asi, cmd)() - case 'enable_swap': - asi.swap.enable() - case 'disable_swap': - asi.swap.disable() case 'sign': - main(do_loop=False) + main(asi=asi, do_loop=False) case 'wait': - main(do_loop=True) + main(asi=asi, do_loop=True) case 'clean': asi.do_mount() asi.clean_old_files() asi.do_umount() + case 'gen_key': + asi.gen_key() case 'wipe_key': asi.do_mount() asi.wipe_encryption_key() asi.do_umount() + case 'macos_ramdisk_setup' | 'macos_ramdisk_delete': + if sys.platform != 'darwin': + die(1, f'The ‘{cmd}’ operation is for the macOS platform only') + asi.macos_ramdisk.create() if cmd == 'macos_ramdisk_setup' else asi.macos_ramdisk.destroy() diff --git a/test/cmdtest_d/autosign.py b/test/cmdtest_d/autosign.py index df3354b5..f01657fa 100755 --- a/test/cmdtest_d/autosign.py +++ b/test/cmdtest_d/autosign.py @@ -100,7 +100,7 @@ class CmdTestAutosignBase(CmdTestBase): if not self.cfg.no_daemon_stop: if sys.platform == 'darwin': - for label in (self.asi.dev_label, self.asi.ramdisk.label): + for label in (self.asi.dev_label, self.asi.macos_ramdisk.label): self._macOS_eject_disk(label) def _create_autosign_instances(self, create_dirs): @@ -212,7 +212,7 @@ class CmdTestAutosignBase(CmdTestBase): mn_type = mn_type or 'mmgen' if sys.platform == 'darwin' and not self.cfg.no_daemon_stop: - self._macOS_eject_disk(self.asi.ramdisk.label) + self._macOS_eject_disk(self.asi.macos_ramdisk.label) self.insert_device() @@ -258,7 +258,7 @@ class CmdTestAutosignBase(CmdTestBase): self.remove_device() if sys.platform == 'darwin' and not self.cfg.no_daemon_stop: - atexit.register(self._macOS_eject_disk, self.asi.ramdisk.label) + atexit.register(self._macOS_eject_disk, self.asi.macos_ramdisk.label) return t