From 8bfa8fbc92c4473d27726c30442a2008e1f93497 Mon Sep 17 00:00:00 2001 From: Morgan Dean Date: Mon, 30 Jun 2025 10:13:49 -0700 Subject: [PATCH] move lume & lumier to single directories --- libs/{swift => }/lume/.cursorignore | 0 libs/{swift => }/lume/CONTRIBUTING.md | 0 libs/{swift => }/lume/Package.resolved | 0 libs/{swift => }/lume/Package.swift | 0 libs/{swift => }/lume/README.md | 0 libs/{swift => }/lume/docs/API-Reference.md | 0 libs/{swift => }/lume/docs/Development.md | 0 libs/{swift => }/lume/docs/FAQ.md | 0 libs/{swift => }/lume/img/cli.png | Bin libs/{swift => }/lume/img/logo_black.png | Bin libs/{swift => }/lume/img/logo_white.png | Bin .../lume/resources/lume.entitlements | 0 libs/lume/scripts/build/build-debug.sh | 4 + .../scripts/build/build-release-notarized.sh | 211 ++++++++++++++++++ libs/lume/scripts/build/build-release.sh | 21 ++ libs/{swift => }/lume/scripts/install.sh | 0 .../{swift => }/lume/src/Commands/Clone.swift | 0 .../lume/src/Commands/Config.swift | 0 .../lume/src/Commands/Create.swift | 0 .../lume/src/Commands/Delete.swift | 0 libs/{swift => }/lume/src/Commands/Get.swift | 0 libs/{swift => }/lume/src/Commands/IPSW.swift | 0 .../lume/src/Commands/Images.swift | 0 libs/{swift => }/lume/src/Commands/List.swift | 0 libs/{swift => }/lume/src/Commands/Logs.swift | 0 .../src/Commands/Options/FormatOption.swift | 0 .../{swift => }/lume/src/Commands/Prune.swift | 0 libs/{swift => }/lume/src/Commands/Pull.swift | 0 libs/{swift => }/lume/src/Commands/Push.swift | 0 libs/{swift => }/lume/src/Commands/Run.swift | 0 .../{swift => }/lume/src/Commands/Serve.swift | 0 libs/{swift => }/lume/src/Commands/Set.swift | 0 libs/{swift => }/lume/src/Commands/Stop.swift | 0 .../ImageContainerRegistry.swift | 0 .../src/ContainerRegistry/ImageList.swift | 0 .../src/ContainerRegistry/ImagesPrinter.swift | 0 libs/{swift => }/lume/src/Errors/Errors.swift | 0 .../lume/src/FileSystem/Home.swift | 0 .../lume/src/FileSystem/Settings.swift | 0 .../lume/src/FileSystem/VMConfig.swift | 0 .../lume/src/FileSystem/VMDirectory.swift | 0 .../lume/src/FileSystem/VMLocation.swift | 0 .../{swift => }/lume/src/LumeController.swift | 0 libs/{swift => }/lume/src/Main.swift | 0 libs/{swift => }/lume/src/Server/HTTP.swift | 0 .../lume/src/Server/Handlers.swift | 0 .../lume/src/Server/Requests.swift | 0 .../lume/src/Server/Responses.swift | 0 libs/{swift => }/lume/src/Server/Server.swift | 0 .../lume/src/Utils/CommandRegistry.swift | 0 .../lume/src/Utils/CommandUtils.swift | 0 libs/{swift => }/lume/src/Utils/Logger.swift | 0 .../lume/src/Utils/NetworkUtils.swift | 0 libs/{swift => }/lume/src/Utils/Path.swift | 0 .../lume/src/Utils/ProcessRunner.swift | 0 .../lume/src/Utils/ProgressLogger.swift | 0 libs/{swift => }/lume/src/Utils/String.swift | 0 libs/{swift => }/lume/src/Utils/Utils.swift | 0 libs/{swift => }/lume/src/VM/DarwinVM.swift | 0 libs/{swift => }/lume/src/VM/LinuxVM.swift | 0 libs/{swift => }/lume/src/VM/VM.swift | 0 libs/{swift => }/lume/src/VM/VMDetails.swift | 0 .../lume/src/VM/VMDetailsPrinter.swift | 0 .../lume/src/VM/VMDisplayResolution.swift | 0 libs/{swift => }/lume/src/VM/VMFactory.swift | 0 .../lume/src/VNC/PassphraseGenerator.swift | 0 .../{swift => }/lume/src/VNC/VNCService.swift | 0 .../src/Virtualization/DHCPLeaseParser.swift | 0 .../Virtualization/DarwinImageLoader.swift | 0 .../Virtualization/ImageLoaderFactory.swift | 0 .../VMVirtualizationService.swift | 0 .../{swift => }/lume/tests/Mocks/MockVM.swift | 0 .../Mocks/MockVMVirtualizationService.swift | 0 .../lume/tests/Mocks/MockVNCService.swift | 0 .../lume/tests/VM/VMDetailsPrinterTests.swift | 0 libs/{swift => }/lume/tests/VMTests.swift | 0 .../tests/VMVirtualizationServiceTests.swift | 0 .../lume/tests/VNCServiceTests.swift | 0 libs/{bash => }/lumier/.dockerignore | 0 libs/{bash => }/lumier/Dockerfile | 0 libs/{bash => }/lumier/README.md | 0 libs/{bash => }/lumier/src/bin/entry.sh | 0 .../{bash => }/lumier/src/config/constants.sh | 0 libs/{bash => }/lumier/src/hooks/on-logon.sh | 0 libs/{bash => }/lumier/src/lib/utils.sh | 0 libs/{bash => }/lumier/src/lib/vm.sh | 0 86 files changed, 236 insertions(+) rename libs/{swift => }/lume/.cursorignore (100%) rename libs/{swift => }/lume/CONTRIBUTING.md (100%) rename libs/{swift => }/lume/Package.resolved (100%) rename libs/{swift => }/lume/Package.swift (100%) rename libs/{swift => }/lume/README.md (100%) rename libs/{swift => }/lume/docs/API-Reference.md (100%) rename libs/{swift => }/lume/docs/Development.md (100%) rename libs/{swift => }/lume/docs/FAQ.md (100%) rename libs/{swift => }/lume/img/cli.png (100%) rename libs/{swift => }/lume/img/logo_black.png (100%) rename libs/{swift => }/lume/img/logo_white.png (100%) rename libs/{swift => }/lume/resources/lume.entitlements (100%) create mode 100755 libs/lume/scripts/build/build-debug.sh create mode 100755 libs/lume/scripts/build/build-release-notarized.sh create mode 100755 libs/lume/scripts/build/build-release.sh rename libs/{swift => }/lume/scripts/install.sh (100%) rename libs/{swift => }/lume/src/Commands/Clone.swift (100%) rename libs/{swift => }/lume/src/Commands/Config.swift (100%) rename libs/{swift => }/lume/src/Commands/Create.swift (100%) rename libs/{swift => }/lume/src/Commands/Delete.swift (100%) rename libs/{swift => }/lume/src/Commands/Get.swift (100%) rename libs/{swift => }/lume/src/Commands/IPSW.swift (100%) rename libs/{swift => }/lume/src/Commands/Images.swift (100%) rename libs/{swift => }/lume/src/Commands/List.swift (100%) rename libs/{swift => }/lume/src/Commands/Logs.swift (100%) rename libs/{swift => }/lume/src/Commands/Options/FormatOption.swift (100%) rename libs/{swift => }/lume/src/Commands/Prune.swift (100%) rename libs/{swift => }/lume/src/Commands/Pull.swift (100%) rename libs/{swift => }/lume/src/Commands/Push.swift (100%) rename libs/{swift => }/lume/src/Commands/Run.swift (100%) rename libs/{swift => }/lume/src/Commands/Serve.swift (100%) rename libs/{swift => }/lume/src/Commands/Set.swift (100%) rename libs/{swift => }/lume/src/Commands/Stop.swift (100%) rename libs/{swift => }/lume/src/ContainerRegistry/ImageContainerRegistry.swift (100%) rename libs/{swift => }/lume/src/ContainerRegistry/ImageList.swift (100%) rename libs/{swift => }/lume/src/ContainerRegistry/ImagesPrinter.swift (100%) rename libs/{swift => }/lume/src/Errors/Errors.swift (100%) rename libs/{swift => }/lume/src/FileSystem/Home.swift (100%) rename libs/{swift => }/lume/src/FileSystem/Settings.swift (100%) rename libs/{swift => }/lume/src/FileSystem/VMConfig.swift (100%) rename libs/{swift => }/lume/src/FileSystem/VMDirectory.swift (100%) rename libs/{swift => }/lume/src/FileSystem/VMLocation.swift (100%) rename libs/{swift => }/lume/src/LumeController.swift (100%) rename libs/{swift => }/lume/src/Main.swift (100%) rename libs/{swift => }/lume/src/Server/HTTP.swift (100%) rename libs/{swift => }/lume/src/Server/Handlers.swift (100%) rename libs/{swift => }/lume/src/Server/Requests.swift (100%) rename libs/{swift => }/lume/src/Server/Responses.swift (100%) rename libs/{swift => }/lume/src/Server/Server.swift (100%) rename libs/{swift => }/lume/src/Utils/CommandRegistry.swift (100%) rename libs/{swift => }/lume/src/Utils/CommandUtils.swift (100%) rename libs/{swift => }/lume/src/Utils/Logger.swift (100%) rename libs/{swift => }/lume/src/Utils/NetworkUtils.swift (100%) rename libs/{swift => }/lume/src/Utils/Path.swift (100%) rename libs/{swift => }/lume/src/Utils/ProcessRunner.swift (100%) rename libs/{swift => }/lume/src/Utils/ProgressLogger.swift (100%) rename libs/{swift => }/lume/src/Utils/String.swift (100%) rename libs/{swift => }/lume/src/Utils/Utils.swift (100%) rename libs/{swift => }/lume/src/VM/DarwinVM.swift (100%) rename libs/{swift => }/lume/src/VM/LinuxVM.swift (100%) rename libs/{swift => }/lume/src/VM/VM.swift (100%) rename libs/{swift => }/lume/src/VM/VMDetails.swift (100%) rename libs/{swift => }/lume/src/VM/VMDetailsPrinter.swift (100%) rename libs/{swift => }/lume/src/VM/VMDisplayResolution.swift (100%) rename libs/{swift => }/lume/src/VM/VMFactory.swift (100%) rename libs/{swift => }/lume/src/VNC/PassphraseGenerator.swift (100%) rename libs/{swift => }/lume/src/VNC/VNCService.swift (100%) rename libs/{swift => }/lume/src/Virtualization/DHCPLeaseParser.swift (100%) rename libs/{swift => }/lume/src/Virtualization/DarwinImageLoader.swift (100%) rename libs/{swift => }/lume/src/Virtualization/ImageLoaderFactory.swift (100%) rename libs/{swift => }/lume/src/Virtualization/VMVirtualizationService.swift (100%) rename libs/{swift => }/lume/tests/Mocks/MockVM.swift (100%) rename libs/{swift => }/lume/tests/Mocks/MockVMVirtualizationService.swift (100%) rename libs/{swift => }/lume/tests/Mocks/MockVNCService.swift (100%) rename libs/{swift => }/lume/tests/VM/VMDetailsPrinterTests.swift (100%) rename libs/{swift => }/lume/tests/VMTests.swift (100%) rename libs/{swift => }/lume/tests/VMVirtualizationServiceTests.swift (100%) rename libs/{swift => }/lume/tests/VNCServiceTests.swift (100%) rename libs/{bash => }/lumier/.dockerignore (100%) rename libs/{bash => }/lumier/Dockerfile (100%) rename libs/{bash => }/lumier/README.md (100%) rename libs/{bash => }/lumier/src/bin/entry.sh (100%) rename libs/{bash => }/lumier/src/config/constants.sh (100%) rename libs/{bash => }/lumier/src/hooks/on-logon.sh (100%) rename libs/{bash => }/lumier/src/lib/utils.sh (100%) rename libs/{bash => }/lumier/src/lib/vm.sh (100%) diff --git a/libs/swift/lume/.cursorignore b/libs/lume/.cursorignore similarity index 100% rename from libs/swift/lume/.cursorignore rename to libs/lume/.cursorignore diff --git a/libs/swift/lume/CONTRIBUTING.md b/libs/lume/CONTRIBUTING.md similarity index 100% rename from libs/swift/lume/CONTRIBUTING.md rename to libs/lume/CONTRIBUTING.md diff --git a/libs/swift/lume/Package.resolved b/libs/lume/Package.resolved similarity index 100% rename from libs/swift/lume/Package.resolved rename to libs/lume/Package.resolved diff --git a/libs/swift/lume/Package.swift b/libs/lume/Package.swift similarity index 100% rename from libs/swift/lume/Package.swift rename to libs/lume/Package.swift diff --git a/libs/swift/lume/README.md b/libs/lume/README.md similarity index 100% rename from libs/swift/lume/README.md rename to libs/lume/README.md diff --git a/libs/swift/lume/docs/API-Reference.md b/libs/lume/docs/API-Reference.md similarity index 100% rename from libs/swift/lume/docs/API-Reference.md rename to libs/lume/docs/API-Reference.md diff --git a/libs/swift/lume/docs/Development.md b/libs/lume/docs/Development.md similarity index 100% rename from libs/swift/lume/docs/Development.md rename to libs/lume/docs/Development.md diff --git a/libs/swift/lume/docs/FAQ.md b/libs/lume/docs/FAQ.md similarity index 100% rename from libs/swift/lume/docs/FAQ.md rename to libs/lume/docs/FAQ.md diff --git a/libs/swift/lume/img/cli.png b/libs/lume/img/cli.png similarity index 100% rename from libs/swift/lume/img/cli.png rename to libs/lume/img/cli.png diff --git a/libs/swift/lume/img/logo_black.png b/libs/lume/img/logo_black.png similarity index 100% rename from libs/swift/lume/img/logo_black.png rename to libs/lume/img/logo_black.png diff --git a/libs/swift/lume/img/logo_white.png b/libs/lume/img/logo_white.png similarity index 100% rename from libs/swift/lume/img/logo_white.png rename to libs/lume/img/logo_white.png diff --git a/libs/swift/lume/resources/lume.entitlements b/libs/lume/resources/lume.entitlements similarity index 100% rename from libs/swift/lume/resources/lume.entitlements rename to libs/lume/resources/lume.entitlements diff --git a/libs/lume/scripts/build/build-debug.sh b/libs/lume/scripts/build/build-debug.sh new file mode 100755 index 00000000..452e20c3 --- /dev/null +++ b/libs/lume/scripts/build/build-debug.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +swift build --product lume +codesign --force --entitlement resources/lume.entitlements --sign - .build/debug/lume diff --git a/libs/lume/scripts/build/build-release-notarized.sh b/libs/lume/scripts/build/build-release-notarized.sh new file mode 100755 index 00000000..603446b7 --- /dev/null +++ b/libs/lume/scripts/build/build-release-notarized.sh @@ -0,0 +1,211 @@ +#!/bin/bash + +# Set default log level if not provided +LOG_LEVEL=${LOG_LEVEL:-"normal"} + +# Function to log based on level +log() { + local level=$1 + local message=$2 + + case "$LOG_LEVEL" in + "minimal") + # Only show essential or error messages + if [ "$level" = "essential" ] || [ "$level" = "error" ]; then + echo "$message" + fi + ;; + "none") + # Show nothing except errors + if [ "$level" = "error" ]; then + echo "$message" >&2 + fi + ;; + *) + # Normal logging - show everything + echo "$message" + ;; + esac +} + +# Check required environment variables +required_vars=( + "CERT_APPLICATION_NAME" + "CERT_INSTALLER_NAME" + "APPLE_ID" + "TEAM_ID" + "APP_SPECIFIC_PASSWORD" +) + +for var in "${required_vars[@]}"; do + if [ -z "${!var}" ]; then + log "error" "Error: $var is not set" + exit 1 + fi +done + +# Get VERSION from environment or use default +VERSION=${VERSION:-"0.1.0"} + +# Move to the project root directory +pushd ../../ > /dev/null + +# Ensure .release directory exists and is clean +mkdir -p .release +log "normal" "Ensuring .release directory exists and is accessible" + +# Build the release version +log "essential" "Building release version..." +swift build -c release --product lume > /dev/null + +# Sign the binary with hardened runtime entitlements +log "essential" "Signing binary with entitlements..." +codesign --force --options runtime \ + --entitlement ./resources/lume.entitlements \ + --sign "$CERT_APPLICATION_NAME" \ + .build/release/lume 2> /dev/null + +# Create a temporary directory for packaging +TEMP_ROOT=$(mktemp -d) +mkdir -p "$TEMP_ROOT/usr/local/bin" +cp -f .build/release/lume "$TEMP_ROOT/usr/local/bin/" + +# Build the installer package +log "essential" "Building installer package..." +if ! pkgbuild --root "$TEMP_ROOT" \ + --identifier "com.trycua.lume" \ + --version "1.0" \ + --install-location "/" \ + --sign "$CERT_INSTALLER_NAME" \ + ./.release/lume.pkg; then + log "error" "Failed to build installer package" + exit 1 +fi + +# Verify the package was created +if [ ! -f "./.release/lume.pkg" ]; then + log "error" "Package file ./.release/lume.pkg was not created" + exit 1 +fi + +log "essential" "Package created successfully" + +# Submit for notarization using stored credentials +log "essential" "Submitting for notarization..." +if [ "$LOG_LEVEL" = "minimal" ] || [ "$LOG_LEVEL" = "none" ]; then + # Minimal output - capture ID but hide details + NOTARY_OUTPUT=$(xcrun notarytool submit ./.release/lume.pkg \ + --apple-id "${APPLE_ID}" \ + --team-id "${TEAM_ID}" \ + --password "${APP_SPECIFIC_PASSWORD}" \ + --wait 2>&1) + + # Check if notarization was successful + if echo "$NOTARY_OUTPUT" | grep -q "status: Accepted"; then + log "essential" "Notarization successful!" + else + log "error" "Notarization failed. Please check logs." + log "error" "Notarization output:" + echo "$NOTARY_OUTPUT" + exit 1 + fi +else + # Normal verbose output + if ! xcrun notarytool submit ./.release/lume.pkg \ + --apple-id "${APPLE_ID}" \ + --team-id "${TEAM_ID}" \ + --password "${APP_SPECIFIC_PASSWORD}" \ + --wait; then + log "error" "Notarization failed" + exit 1 + fi +fi + +# Staple the notarization ticket +log "essential" "Stapling notarization ticket..." +if ! xcrun stapler staple ./.release/lume.pkg > /dev/null 2>&1; then + log "error" "Failed to staple notarization ticket" + exit 1 +fi + +# Create temporary directory for package extraction +EXTRACT_ROOT=$(mktemp -d) +PKG_PATH="$(pwd)/.release/lume.pkg" + +# Extract the pkg using xar +cd "$EXTRACT_ROOT" +xar -xf "$PKG_PATH" > /dev/null 2>&1 + +# Verify Payload exists before proceeding +if [ ! -f "Payload" ]; then + log "error" "Error: Payload file not found after xar extraction" + exit 1 +fi + +# Create a directory for the extracted contents +mkdir -p extracted +cd extracted + +# Extract the Payload +cat ../Payload | gunzip -dc | cpio -i > /dev/null 2>&1 + +# Verify the binary exists +if [ ! -f "usr/local/bin/lume" ]; then + log "error" "Error: lume binary not found in expected location" + exit 1 +fi + +# Get the release directory absolute path +RELEASE_DIR="$(realpath "$(dirname "$PKG_PATH")")" +log "normal" "Using release directory: $RELEASE_DIR" + +# Copy extracted lume to the release directory +cp -f usr/local/bin/lume "$RELEASE_DIR/lume" + +# Install to user-local bin directory (standard location) +USER_BIN="$HOME/.local/bin" +mkdir -p "$USER_BIN" +cp -f "$RELEASE_DIR/lume" "$USER_BIN/lume" + +# Advise user to add to PATH if not present +if ! echo "$PATH" | grep -q "$USER_BIN"; then + log "normal" "[lume build] Note: $USER_BIN is not in your PATH. Add 'export PATH=\"$USER_BIN:\$PATH\"' to your shell profile." +fi + +# Get architecture and create OS identifier +ARCH=$(uname -m) +OS_IDENTIFIER="darwin-${ARCH}" + +# Create versioned archives of the package with OS identifier in the name +log "essential" "Creating archives in $RELEASE_DIR..." +cd "$RELEASE_DIR" + +# Clean up any existing artifacts first to avoid conflicts +rm -f lume-*.tar.gz lume-*.pkg.tar.gz + +# Create version-specific archives +log "essential" "Creating version-specific archives (${VERSION})..." +# Package the binary +tar -czf "lume-${VERSION}-${OS_IDENTIFIER}.tar.gz" lume > /dev/null 2>&1 +# Package the installer +tar -czf "lume-${VERSION}-${OS_IDENTIFIER}.pkg.tar.gz" lume.pkg > /dev/null 2>&1 + +# Create sha256 checksum file +log "essential" "Generating checksums..." +shasum -a 256 lume-*.tar.gz > checksums.txt +log "essential" "Package created successfully with checksums generated." + +# Show what's in the release directory +log "essential" "Files in release directory:" +ls -la "$RELEASE_DIR" + +# Ensure correct permissions +chmod 644 "$RELEASE_DIR"/*.tar.gz "$RELEASE_DIR"/*.pkg.tar.gz "$RELEASE_DIR"/checksums.txt + +popd > /dev/null + +# Clean up +rm -rf "$TEMP_ROOT" +rm -rf "$EXTRACT_ROOT" + +log "essential" "Build and packaging completed successfully." \ No newline at end of file diff --git a/libs/lume/scripts/build/build-release.sh b/libs/lume/scripts/build/build-release.sh new file mode 100755 index 00000000..20b63124 --- /dev/null +++ b/libs/lume/scripts/build/build-release.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +pushd ../../ + +swift build -c release --product lume +codesign --force --entitlement ./resources/lume.entitlements --sign - .build/release/lume + +mkdir -p ./.release +cp -f .build/release/lume ./.release/lume + +# Install to user-local bin directory (standard location) +USER_BIN="$HOME/.local/bin" +mkdir -p "$USER_BIN" +cp -f ./.release/lume "$USER_BIN/lume" + +# Advise user to add to PATH if not present +if ! echo "$PATH" | grep -q "$USER_BIN"; then + echo "[lume build] Note: $USER_BIN is not in your PATH. Add 'export PATH=\"$USER_BIN:\$PATH\"' to your shell profile." +fi + +popd \ No newline at end of file diff --git a/libs/swift/lume/scripts/install.sh b/libs/lume/scripts/install.sh similarity index 100% rename from libs/swift/lume/scripts/install.sh rename to libs/lume/scripts/install.sh diff --git a/libs/swift/lume/src/Commands/Clone.swift b/libs/lume/src/Commands/Clone.swift similarity index 100% rename from libs/swift/lume/src/Commands/Clone.swift rename to libs/lume/src/Commands/Clone.swift diff --git a/libs/swift/lume/src/Commands/Config.swift b/libs/lume/src/Commands/Config.swift similarity index 100% rename from libs/swift/lume/src/Commands/Config.swift rename to libs/lume/src/Commands/Config.swift diff --git a/libs/swift/lume/src/Commands/Create.swift b/libs/lume/src/Commands/Create.swift similarity index 100% rename from libs/swift/lume/src/Commands/Create.swift rename to libs/lume/src/Commands/Create.swift diff --git a/libs/swift/lume/src/Commands/Delete.swift b/libs/lume/src/Commands/Delete.swift similarity index 100% rename from libs/swift/lume/src/Commands/Delete.swift rename to libs/lume/src/Commands/Delete.swift diff --git a/libs/swift/lume/src/Commands/Get.swift b/libs/lume/src/Commands/Get.swift similarity index 100% rename from libs/swift/lume/src/Commands/Get.swift rename to libs/lume/src/Commands/Get.swift diff --git a/libs/swift/lume/src/Commands/IPSW.swift b/libs/lume/src/Commands/IPSW.swift similarity index 100% rename from libs/swift/lume/src/Commands/IPSW.swift rename to libs/lume/src/Commands/IPSW.swift diff --git a/libs/swift/lume/src/Commands/Images.swift b/libs/lume/src/Commands/Images.swift similarity index 100% rename from libs/swift/lume/src/Commands/Images.swift rename to libs/lume/src/Commands/Images.swift diff --git a/libs/swift/lume/src/Commands/List.swift b/libs/lume/src/Commands/List.swift similarity index 100% rename from libs/swift/lume/src/Commands/List.swift rename to libs/lume/src/Commands/List.swift diff --git a/libs/swift/lume/src/Commands/Logs.swift b/libs/lume/src/Commands/Logs.swift similarity index 100% rename from libs/swift/lume/src/Commands/Logs.swift rename to libs/lume/src/Commands/Logs.swift diff --git a/libs/swift/lume/src/Commands/Options/FormatOption.swift b/libs/lume/src/Commands/Options/FormatOption.swift similarity index 100% rename from libs/swift/lume/src/Commands/Options/FormatOption.swift rename to libs/lume/src/Commands/Options/FormatOption.swift diff --git a/libs/swift/lume/src/Commands/Prune.swift b/libs/lume/src/Commands/Prune.swift similarity index 100% rename from libs/swift/lume/src/Commands/Prune.swift rename to libs/lume/src/Commands/Prune.swift diff --git a/libs/swift/lume/src/Commands/Pull.swift b/libs/lume/src/Commands/Pull.swift similarity index 100% rename from libs/swift/lume/src/Commands/Pull.swift rename to libs/lume/src/Commands/Pull.swift diff --git a/libs/swift/lume/src/Commands/Push.swift b/libs/lume/src/Commands/Push.swift similarity index 100% rename from libs/swift/lume/src/Commands/Push.swift rename to libs/lume/src/Commands/Push.swift diff --git a/libs/swift/lume/src/Commands/Run.swift b/libs/lume/src/Commands/Run.swift similarity index 100% rename from libs/swift/lume/src/Commands/Run.swift rename to libs/lume/src/Commands/Run.swift diff --git a/libs/swift/lume/src/Commands/Serve.swift b/libs/lume/src/Commands/Serve.swift similarity index 100% rename from libs/swift/lume/src/Commands/Serve.swift rename to libs/lume/src/Commands/Serve.swift diff --git a/libs/swift/lume/src/Commands/Set.swift b/libs/lume/src/Commands/Set.swift similarity index 100% rename from libs/swift/lume/src/Commands/Set.swift rename to libs/lume/src/Commands/Set.swift diff --git a/libs/swift/lume/src/Commands/Stop.swift b/libs/lume/src/Commands/Stop.swift similarity index 100% rename from libs/swift/lume/src/Commands/Stop.swift rename to libs/lume/src/Commands/Stop.swift diff --git a/libs/swift/lume/src/ContainerRegistry/ImageContainerRegistry.swift b/libs/lume/src/ContainerRegistry/ImageContainerRegistry.swift similarity index 100% rename from libs/swift/lume/src/ContainerRegistry/ImageContainerRegistry.swift rename to libs/lume/src/ContainerRegistry/ImageContainerRegistry.swift diff --git a/libs/swift/lume/src/ContainerRegistry/ImageList.swift b/libs/lume/src/ContainerRegistry/ImageList.swift similarity index 100% rename from libs/swift/lume/src/ContainerRegistry/ImageList.swift rename to libs/lume/src/ContainerRegistry/ImageList.swift diff --git a/libs/swift/lume/src/ContainerRegistry/ImagesPrinter.swift b/libs/lume/src/ContainerRegistry/ImagesPrinter.swift similarity index 100% rename from libs/swift/lume/src/ContainerRegistry/ImagesPrinter.swift rename to libs/lume/src/ContainerRegistry/ImagesPrinter.swift diff --git a/libs/swift/lume/src/Errors/Errors.swift b/libs/lume/src/Errors/Errors.swift similarity index 100% rename from libs/swift/lume/src/Errors/Errors.swift rename to libs/lume/src/Errors/Errors.swift diff --git a/libs/swift/lume/src/FileSystem/Home.swift b/libs/lume/src/FileSystem/Home.swift similarity index 100% rename from libs/swift/lume/src/FileSystem/Home.swift rename to libs/lume/src/FileSystem/Home.swift diff --git a/libs/swift/lume/src/FileSystem/Settings.swift b/libs/lume/src/FileSystem/Settings.swift similarity index 100% rename from libs/swift/lume/src/FileSystem/Settings.swift rename to libs/lume/src/FileSystem/Settings.swift diff --git a/libs/swift/lume/src/FileSystem/VMConfig.swift b/libs/lume/src/FileSystem/VMConfig.swift similarity index 100% rename from libs/swift/lume/src/FileSystem/VMConfig.swift rename to libs/lume/src/FileSystem/VMConfig.swift diff --git a/libs/swift/lume/src/FileSystem/VMDirectory.swift b/libs/lume/src/FileSystem/VMDirectory.swift similarity index 100% rename from libs/swift/lume/src/FileSystem/VMDirectory.swift rename to libs/lume/src/FileSystem/VMDirectory.swift diff --git a/libs/swift/lume/src/FileSystem/VMLocation.swift b/libs/lume/src/FileSystem/VMLocation.swift similarity index 100% rename from libs/swift/lume/src/FileSystem/VMLocation.swift rename to libs/lume/src/FileSystem/VMLocation.swift diff --git a/libs/swift/lume/src/LumeController.swift b/libs/lume/src/LumeController.swift similarity index 100% rename from libs/swift/lume/src/LumeController.swift rename to libs/lume/src/LumeController.swift diff --git a/libs/swift/lume/src/Main.swift b/libs/lume/src/Main.swift similarity index 100% rename from libs/swift/lume/src/Main.swift rename to libs/lume/src/Main.swift diff --git a/libs/swift/lume/src/Server/HTTP.swift b/libs/lume/src/Server/HTTP.swift similarity index 100% rename from libs/swift/lume/src/Server/HTTP.swift rename to libs/lume/src/Server/HTTP.swift diff --git a/libs/swift/lume/src/Server/Handlers.swift b/libs/lume/src/Server/Handlers.swift similarity index 100% rename from libs/swift/lume/src/Server/Handlers.swift rename to libs/lume/src/Server/Handlers.swift diff --git a/libs/swift/lume/src/Server/Requests.swift b/libs/lume/src/Server/Requests.swift similarity index 100% rename from libs/swift/lume/src/Server/Requests.swift rename to libs/lume/src/Server/Requests.swift diff --git a/libs/swift/lume/src/Server/Responses.swift b/libs/lume/src/Server/Responses.swift similarity index 100% rename from libs/swift/lume/src/Server/Responses.swift rename to libs/lume/src/Server/Responses.swift diff --git a/libs/swift/lume/src/Server/Server.swift b/libs/lume/src/Server/Server.swift similarity index 100% rename from libs/swift/lume/src/Server/Server.swift rename to libs/lume/src/Server/Server.swift diff --git a/libs/swift/lume/src/Utils/CommandRegistry.swift b/libs/lume/src/Utils/CommandRegistry.swift similarity index 100% rename from libs/swift/lume/src/Utils/CommandRegistry.swift rename to libs/lume/src/Utils/CommandRegistry.swift diff --git a/libs/swift/lume/src/Utils/CommandUtils.swift b/libs/lume/src/Utils/CommandUtils.swift similarity index 100% rename from libs/swift/lume/src/Utils/CommandUtils.swift rename to libs/lume/src/Utils/CommandUtils.swift diff --git a/libs/swift/lume/src/Utils/Logger.swift b/libs/lume/src/Utils/Logger.swift similarity index 100% rename from libs/swift/lume/src/Utils/Logger.swift rename to libs/lume/src/Utils/Logger.swift diff --git a/libs/swift/lume/src/Utils/NetworkUtils.swift b/libs/lume/src/Utils/NetworkUtils.swift similarity index 100% rename from libs/swift/lume/src/Utils/NetworkUtils.swift rename to libs/lume/src/Utils/NetworkUtils.swift diff --git a/libs/swift/lume/src/Utils/Path.swift b/libs/lume/src/Utils/Path.swift similarity index 100% rename from libs/swift/lume/src/Utils/Path.swift rename to libs/lume/src/Utils/Path.swift diff --git a/libs/swift/lume/src/Utils/ProcessRunner.swift b/libs/lume/src/Utils/ProcessRunner.swift similarity index 100% rename from libs/swift/lume/src/Utils/ProcessRunner.swift rename to libs/lume/src/Utils/ProcessRunner.swift diff --git a/libs/swift/lume/src/Utils/ProgressLogger.swift b/libs/lume/src/Utils/ProgressLogger.swift similarity index 100% rename from libs/swift/lume/src/Utils/ProgressLogger.swift rename to libs/lume/src/Utils/ProgressLogger.swift diff --git a/libs/swift/lume/src/Utils/String.swift b/libs/lume/src/Utils/String.swift similarity index 100% rename from libs/swift/lume/src/Utils/String.swift rename to libs/lume/src/Utils/String.swift diff --git a/libs/swift/lume/src/Utils/Utils.swift b/libs/lume/src/Utils/Utils.swift similarity index 100% rename from libs/swift/lume/src/Utils/Utils.swift rename to libs/lume/src/Utils/Utils.swift diff --git a/libs/swift/lume/src/VM/DarwinVM.swift b/libs/lume/src/VM/DarwinVM.swift similarity index 100% rename from libs/swift/lume/src/VM/DarwinVM.swift rename to libs/lume/src/VM/DarwinVM.swift diff --git a/libs/swift/lume/src/VM/LinuxVM.swift b/libs/lume/src/VM/LinuxVM.swift similarity index 100% rename from libs/swift/lume/src/VM/LinuxVM.swift rename to libs/lume/src/VM/LinuxVM.swift diff --git a/libs/swift/lume/src/VM/VM.swift b/libs/lume/src/VM/VM.swift similarity index 100% rename from libs/swift/lume/src/VM/VM.swift rename to libs/lume/src/VM/VM.swift diff --git a/libs/swift/lume/src/VM/VMDetails.swift b/libs/lume/src/VM/VMDetails.swift similarity index 100% rename from libs/swift/lume/src/VM/VMDetails.swift rename to libs/lume/src/VM/VMDetails.swift diff --git a/libs/swift/lume/src/VM/VMDetailsPrinter.swift b/libs/lume/src/VM/VMDetailsPrinter.swift similarity index 100% rename from libs/swift/lume/src/VM/VMDetailsPrinter.swift rename to libs/lume/src/VM/VMDetailsPrinter.swift diff --git a/libs/swift/lume/src/VM/VMDisplayResolution.swift b/libs/lume/src/VM/VMDisplayResolution.swift similarity index 100% rename from libs/swift/lume/src/VM/VMDisplayResolution.swift rename to libs/lume/src/VM/VMDisplayResolution.swift diff --git a/libs/swift/lume/src/VM/VMFactory.swift b/libs/lume/src/VM/VMFactory.swift similarity index 100% rename from libs/swift/lume/src/VM/VMFactory.swift rename to libs/lume/src/VM/VMFactory.swift diff --git a/libs/swift/lume/src/VNC/PassphraseGenerator.swift b/libs/lume/src/VNC/PassphraseGenerator.swift similarity index 100% rename from libs/swift/lume/src/VNC/PassphraseGenerator.swift rename to libs/lume/src/VNC/PassphraseGenerator.swift diff --git a/libs/swift/lume/src/VNC/VNCService.swift b/libs/lume/src/VNC/VNCService.swift similarity index 100% rename from libs/swift/lume/src/VNC/VNCService.swift rename to libs/lume/src/VNC/VNCService.swift diff --git a/libs/swift/lume/src/Virtualization/DHCPLeaseParser.swift b/libs/lume/src/Virtualization/DHCPLeaseParser.swift similarity index 100% rename from libs/swift/lume/src/Virtualization/DHCPLeaseParser.swift rename to libs/lume/src/Virtualization/DHCPLeaseParser.swift diff --git a/libs/swift/lume/src/Virtualization/DarwinImageLoader.swift b/libs/lume/src/Virtualization/DarwinImageLoader.swift similarity index 100% rename from libs/swift/lume/src/Virtualization/DarwinImageLoader.swift rename to libs/lume/src/Virtualization/DarwinImageLoader.swift diff --git a/libs/swift/lume/src/Virtualization/ImageLoaderFactory.swift b/libs/lume/src/Virtualization/ImageLoaderFactory.swift similarity index 100% rename from libs/swift/lume/src/Virtualization/ImageLoaderFactory.swift rename to libs/lume/src/Virtualization/ImageLoaderFactory.swift diff --git a/libs/swift/lume/src/Virtualization/VMVirtualizationService.swift b/libs/lume/src/Virtualization/VMVirtualizationService.swift similarity index 100% rename from libs/swift/lume/src/Virtualization/VMVirtualizationService.swift rename to libs/lume/src/Virtualization/VMVirtualizationService.swift diff --git a/libs/swift/lume/tests/Mocks/MockVM.swift b/libs/lume/tests/Mocks/MockVM.swift similarity index 100% rename from libs/swift/lume/tests/Mocks/MockVM.swift rename to libs/lume/tests/Mocks/MockVM.swift diff --git a/libs/swift/lume/tests/Mocks/MockVMVirtualizationService.swift b/libs/lume/tests/Mocks/MockVMVirtualizationService.swift similarity index 100% rename from libs/swift/lume/tests/Mocks/MockVMVirtualizationService.swift rename to libs/lume/tests/Mocks/MockVMVirtualizationService.swift diff --git a/libs/swift/lume/tests/Mocks/MockVNCService.swift b/libs/lume/tests/Mocks/MockVNCService.swift similarity index 100% rename from libs/swift/lume/tests/Mocks/MockVNCService.swift rename to libs/lume/tests/Mocks/MockVNCService.swift diff --git a/libs/swift/lume/tests/VM/VMDetailsPrinterTests.swift b/libs/lume/tests/VM/VMDetailsPrinterTests.swift similarity index 100% rename from libs/swift/lume/tests/VM/VMDetailsPrinterTests.swift rename to libs/lume/tests/VM/VMDetailsPrinterTests.swift diff --git a/libs/swift/lume/tests/VMTests.swift b/libs/lume/tests/VMTests.swift similarity index 100% rename from libs/swift/lume/tests/VMTests.swift rename to libs/lume/tests/VMTests.swift diff --git a/libs/swift/lume/tests/VMVirtualizationServiceTests.swift b/libs/lume/tests/VMVirtualizationServiceTests.swift similarity index 100% rename from libs/swift/lume/tests/VMVirtualizationServiceTests.swift rename to libs/lume/tests/VMVirtualizationServiceTests.swift diff --git a/libs/swift/lume/tests/VNCServiceTests.swift b/libs/lume/tests/VNCServiceTests.swift similarity index 100% rename from libs/swift/lume/tests/VNCServiceTests.swift rename to libs/lume/tests/VNCServiceTests.swift diff --git a/libs/bash/lumier/.dockerignore b/libs/lumier/.dockerignore similarity index 100% rename from libs/bash/lumier/.dockerignore rename to libs/lumier/.dockerignore diff --git a/libs/bash/lumier/Dockerfile b/libs/lumier/Dockerfile similarity index 100% rename from libs/bash/lumier/Dockerfile rename to libs/lumier/Dockerfile diff --git a/libs/bash/lumier/README.md b/libs/lumier/README.md similarity index 100% rename from libs/bash/lumier/README.md rename to libs/lumier/README.md diff --git a/libs/bash/lumier/src/bin/entry.sh b/libs/lumier/src/bin/entry.sh similarity index 100% rename from libs/bash/lumier/src/bin/entry.sh rename to libs/lumier/src/bin/entry.sh diff --git a/libs/bash/lumier/src/config/constants.sh b/libs/lumier/src/config/constants.sh similarity index 100% rename from libs/bash/lumier/src/config/constants.sh rename to libs/lumier/src/config/constants.sh diff --git a/libs/bash/lumier/src/hooks/on-logon.sh b/libs/lumier/src/hooks/on-logon.sh similarity index 100% rename from libs/bash/lumier/src/hooks/on-logon.sh rename to libs/lumier/src/hooks/on-logon.sh diff --git a/libs/bash/lumier/src/lib/utils.sh b/libs/lumier/src/lib/utils.sh similarity index 100% rename from libs/bash/lumier/src/lib/utils.sh rename to libs/lumier/src/lib/utils.sh diff --git a/libs/bash/lumier/src/lib/vm.sh b/libs/lumier/src/lib/vm.sh similarity index 100% rename from libs/bash/lumier/src/lib/vm.sh rename to libs/lumier/src/lib/vm.sh