autosign: minor cleanups

This commit is contained in:
The MMGen Project 2026-05-15 13:42:44 +00:00
commit 762940deca
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 44 additions and 56 deletions

View file

@ -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()

View file

@ -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()

View file

@ -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