Files
linux-image-manager/lim/storage/common.py

39 lines
1006 B
Python
Raw Normal View History

"""Shared path derivation for encrypted storage setups."""
from dataclasses import dataclass
from lim import device as device_module
from lim import ui
from lim.device import Device
@dataclass(frozen=True)
class StorageTarget:
"""An encrypted drive plus all derived mapper/mount/partition paths."""
device: Device
@property
def mapper_name(self) -> str:
return f"encrypteddrive-{self.device.name}"
@property
def mapper_path(self) -> str:
return f"/dev/mapper/{self.mapper_name}"
@property
def mount_path(self) -> str:
return f"/media/{self.mapper_name}"
@property
def partition_path(self) -> str:
return self.device.partition(1)
def select_storage_target() -> StorageTarget:
target = StorageTarget(device_module.select_device())
ui.info(f"mapper name set to : {target.mapper_name}")
ui.info(f"mapper path set to : {target.mapper_path}")
ui.info(f"mount path set to : {target.mount_path}")
return target