From 6581e34087aa592d86df7499d9850fff90797303 Mon Sep 17 00:00:00 2001 From: InsanePrawn Date: Sat, 8 Oct 2022 02:17:04 +0200 Subject: [PATCH] move packages/{device,deviceinfo}.py to devices/ --- boot.py | 2 +- config/__init__.py | 2 +- devices/__init__.py | 0 devices/cli.py | 13 +++++++++++++ {packages => devices}/device.py | 16 +++------------- {packages => devices}/deviceinfo.py | 0 {packages => devices}/test_device.py | 2 +- {packages => devices}/test_deviceinfo.py | 2 +- docs/source/cmd.rst | 1 + flash.py | 2 +- image.py | 2 +- main.py | 20 +++++++++++--------- packages/cli.py | 3 +-- 13 files changed, 35 insertions(+), 30 deletions(-) create mode 100644 devices/__init__.py create mode 100644 devices/cli.py rename {packages => devices}/device.py (93%) rename {packages => devices}/deviceinfo.py (100%) rename {packages => devices}/test_device.py (97%) rename {packages => devices}/test_deviceinfo.py (100%) diff --git a/boot.py b/boot.py index 65bc687..0f925a3 100644 --- a/boot.py +++ b/boot.py @@ -9,7 +9,7 @@ from constants import FLASH_PARTS, FASTBOOT, JUMPDRIVE, JUMPDRIVE_VERSION from exec.file import makedir from fastboot import fastboot_boot, fastboot_erase_dtbo from image import get_device_name, losetup_rootfs_image, get_image_path, dump_aboot, dump_lk2nd -from packages.device import get_profile_device +from devices.device import get_profile_device from packages.flavour import get_profile_flavour, profile_option from wrapper import enforce_wrap diff --git a/config/__init__.py b/config/__init__.py index 261d316..0ed30f1 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -129,7 +129,7 @@ def prompt_choice(current: Optional[Any], key: str, choices: Iterable[Any], allo def prompt_profile_device(current: Optional[str], profile_name: str) -> tuple[str, bool]: - from packages.device import get_devices + from devices.device import get_devices devices = get_devices() print(click.style("Pick your device!\nThese are the available devices:", bold=True)) for dev in sorted(devices.keys()): diff --git a/devices/__init__.py b/devices/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/devices/cli.py b/devices/cli.py new file mode 100644 index 0000000..65c8b9a --- /dev/null +++ b/devices/cli.py @@ -0,0 +1,13 @@ +import click + +from .device import get_devices + + +@click.command(name='devices') +def cmd_devices(): + 'list the available devices and descriptions' + devices = get_devices() + if not devices: + raise Exception("No devices found!") + for d in sorted(devices.keys()): + print(devices[d]) diff --git a/packages/device.py b/devices/device.py similarity index 93% rename from packages/device.py rename to devices/device.py index a8dd4e0..82dd5ed 100644 --- a/packages/device.py +++ b/devices/device.py @@ -1,4 +1,3 @@ -import click import logging import os @@ -9,10 +8,9 @@ from constants import Arch, ARCHES from config.scheme import DataClass, munchclass from distro.distro import get_kupfer_local from distro.package import LocalPackage +from packages.pkgbuild import Pkgbuild, _pkgbuilds_cache, discover_pkgbuilds, get_pkgbuild_by_path, init_pkgbuilds from utils import read_files_from_tar -from .build import check_package_version_built -from .pkgbuild import Pkgbuild, _pkgbuilds_cache, discover_pkgbuilds, get_pkgbuild_by_path, init_pkgbuilds from .deviceinfo import DeviceInfo, parse_deviceinfo DEVICE_DEPRECATIONS = { @@ -37,6 +35,8 @@ class Device(DataClass): def parse_deviceinfo(self, try_download: bool = True, lazy: bool = True): if not lazy or 'deviceinfo' not in self or self.deviceinfo is None: + # avoid import loop + from packages.build import check_package_version_built is_built = check_package_version_built(self.package, self.arch, try_download=try_download) if not is_built: raise Exception(f"device package {self.package.name} for device {self.name} couldn't be acquired!") @@ -154,13 +154,3 @@ def get_device(name: str, pkgbuilds: Optional[dict[str, Pkgbuild]] = None, lazy: def get_profile_device(profile_name: Optional[str] = None, hint_or_set_arch: bool = False): profile = config.enforce_profile_device_set(profile_name=profile_name, hint_or_set_arch=hint_or_set_arch) return get_device(profile.device) - - -@click.command(name='list') -def cmd_devices_list(): - 'list the available devices and descriptions' - devices = get_devices() - if not devices: - raise Exception("No devices found!") - for d in sorted(devices.keys()): - print(devices[d]) diff --git a/packages/deviceinfo.py b/devices/deviceinfo.py similarity index 100% rename from packages/deviceinfo.py rename to devices/deviceinfo.py diff --git a/packages/test_device.py b/devices/test_device.py similarity index 97% rename from packages/test_device.py rename to devices/test_device.py index 4d9d546..1b64313 100644 --- a/packages/test_device.py +++ b/devices/test_device.py @@ -5,7 +5,7 @@ import os from copy import copy from config import ConfigStateHolder, config -from .pkgbuild import init_pkgbuilds, discover_pkgbuilds, Pkgbuild, parse_pkgbuild +from packages.pkgbuild import init_pkgbuilds, discover_pkgbuilds, Pkgbuild, parse_pkgbuild from .device import Device, DEVICE_DEPRECATIONS, get_device, get_devices, parse_device_pkg, check_devicepkg_name diff --git a/packages/test_deviceinfo.py b/devices/test_deviceinfo.py similarity index 100% rename from packages/test_deviceinfo.py rename to devices/test_deviceinfo.py index 1fc7697..555000a 100644 --- a/packages/test_deviceinfo.py +++ b/devices/test_deviceinfo.py @@ -1,7 +1,7 @@ from config import config -from .device import get_device from .deviceinfo import DeviceInfo, parse_deviceinfo +from .device import get_device deviceinfo_text = """ # Reference: diff --git a/docs/source/cmd.rst b/docs/source/cmd.rst index dd61c17..a55f4ea 100644 --- a/docs/source/cmd.rst +++ b/docs/source/cmd.rst @@ -12,6 +12,7 @@ only used to trigger builds of the submodule docs! cache chroot config + devices flash forwarding image diff --git a/flash.py b/flash.py index 0787aae..c5b6e84 100644 --- a/flash.py +++ b/flash.py @@ -9,7 +9,7 @@ from exec.cmd import run_root_cmd from exec.file import get_temp_dir from fastboot import fastboot_flash from image import dd_image, partprobe, shrink_fs, losetup_rootfs_image, losetup_destroy, dump_aboot, dump_lk2nd, dump_qhypstub, get_image_name, get_image_path -from packages.device import get_profile_device +from devices.device import get_profile_device from packages.flavour import get_profile_flavour, profile_option from wrapper import enforce_wrap diff --git a/image.py b/image.py index 397e26d..f1d64d3 100644 --- a/image.py +++ b/image.py @@ -16,7 +16,7 @@ from distro.distro import get_base_distro, get_kupfer_https from exec.cmd import run_root_cmd, generate_cmd_su from exec.file import root_write_file, root_makedir, makedir from packages.build import build_enable_qemu_binfmt, build_packages, filter_pkgbuilds -from packages.device import Device, get_profile_device +from devices.device import Device, get_profile_device from packages.flavour import Flavour, get_profile_flavour from ssh import copy_ssh_keys from wrapper import enforce_wrap diff --git a/main.py b/main.py index 3dbaea9..6c3efb1 100755 --- a/main.py +++ b/main.py @@ -10,7 +10,8 @@ from logger import logging, setup_logging, verbose_option from wrapper import nowrapper_option, enforce_wrap from config import config, config_option, cmd_config from forwarding import cmd_forwarding -from packages import cmd_packages +from packages.cli import cmd_packages +from devices.cli import cmd_devices from telnet import cmd_telnet from chroot import cmd_chroot from cache import cmd_cache @@ -59,16 +60,17 @@ def main(): exit(1) -cli.add_command(cmd_config) -cli.add_command(cmd_cache) -cli.add_command(cmd_packages) -cli.add_command(cmd_image) cli.add_command(cmd_boot) -cli.add_command(cmd_flash) -cli.add_command(cmd_ssh) -cli.add_command(cmd_forwarding) -cli.add_command(cmd_telnet) +cli.add_command(cmd_cache) cli.add_command(cmd_chroot) +cli.add_command(cmd_config) +cli.add_command(cmd_devices) +cli.add_command(cmd_flash) +cli.add_command(cmd_forwarding) +cli.add_command(cmd_image) +cli.add_command(cmd_packages) +cli.add_command(cmd_ssh) +cli.add_command(cmd_telnet) if __name__ == '__main__': main() diff --git a/packages/cli.py b/packages/cli.py index dec9ca5..44acebc 100644 --- a/packages/cli.py +++ b/packages/cli.py @@ -8,6 +8,7 @@ from typing import Iterable, Optional from config import config from constants import Arch, ARCHES, REPOSITORIES, SRCINFO_FILE, SRCINFO_METADATA_FILE from exec.file import remove_file +from devices.device import get_profile_device from distro.distro import get_kupfer_local from distro.package import LocalPackage from ssh import run_ssh_command, scp_put_files @@ -16,7 +17,6 @@ from wrapper import check_programs_wrap, enforce_wrap from .build import build_packages_by_paths from .pkgbuild import discover_pkgbuilds, filter_pkgbuilds, init_pkgbuilds -from .device import cmd_devices_list, get_profile_device from .flavour import cmd_flavours_list @@ -52,7 +52,6 @@ def cmd_packages(): cmd_packages.add_command(cmd_flavours_list, 'flavours') -cmd_packages.add_command(cmd_devices_list, 'devices') @cmd_packages.command(name='update')