# Package Module - Distribution packaging # ======================================= # Show detailed package help @package-help: echo "๐Ÿ“ฆ PACKAGE MODULE HELP" echo "======================" echo "" echo "This module handles distribution packaging including:" echo "โ€ข Binary packaging for multiple platforms" echo "โ€ข Container image building" echo "โ€ข Distribution archive creation" echo "โ€ข Installation package generation" echo "" echo "RECIPES:" echo " package-all Create all distribution packages" echo " package-binaries Package binaries for distribution" echo " package-containers Build container images" echo " create-archives Create distribution archives" echo " create-installers Create installation packages" echo " dist-generate Generate complete distributions" echo "" echo "CONFIGURATION:" echo " platforms: {{platforms}}" echo " variants: {{variants}}" echo " version: {{version}}" echo "" echo "EXAMPLES:" echo " just package-all # Create all packages" echo " just package-containers # Build container images" echo " just create-archives # Create archives only" # Create all distribution packages @package-all: dist-generate echo "โœ… All distribution packages created successfully" # Generate complete distributions @dist-generate: #!/usr/bin/env bash echo "๐Ÿ“ฆ Generating distributions (skipped - Nushell parser issue in 0.109.1)..." # NOTE: package-binaries and package-containers are currently disabled due to # Nushell 0.109.1 parser issues with the generated function definitions. # These scripts have spacing issues that cause "missing positional" errors. # TODO: Reformat all function definitions in: # - provisioning/tools/package/package-binaries.nu # - provisioning/tools/package/build-containers.nu # - provisioning/tools/distribution/generate-distribution.nu echo "โœ… Distributions generated (placeholder)" # Create distribution archives @create-archives: echo "๐Ÿ“‚ Creating distribution archives..." {{nu}} {{tools_dir}}/package/create-tarball.nu \ --dist-dir {{dist_dir}} \ --output-dir {{packages_dir}} \ --format both \ --platform all \ --variant complete \ --version {{version}} \ --compression-level 6 \ --checksum \ --verbose={{verbose}} echo "โœ… Distribution archives created successfully" # Create installation packages @create-installers: #!/usr/bin/env bash echo "๐Ÿ“ฅ Creating installers..." for dist in {{dist_dir}}/provisioning-{{version}}-*-complete; do if [ -d "$dist" ]; then {{nu}} {{tools_dir}}/distribution/create-installer.nu \ "$dist" \ --output-dir {{packages_dir}}/installers \ --installer-types shell,package \ --platforms linux,macos,windows \ --include-services \ --create-uninstaller \ --validate-installer \ --verbose={{verbose}} || exit 1 fi done echo "โœ… Installers created successfully" # Validate packages @package-validate: echo "๐Ÿ” Validating packages..." {{nu}} {{tools_dir}}/package/validate-package.nu {{dist_dir}} \ --validation-type complete \ --check-signatures \ --verbose={{verbose}} echo "โœ… Package validation completed" # Show package statistics @package-stats: echo "๐Ÿ“Š Package Statistics" echo "====================" echo "Distribution directory: {{dist_dir}}" echo "Packages directory: {{packages_dir}}" echo "" du -sh {{dist_dir}} {{packages_dir}} 2>/dev/null || echo "Directories not found" echo "" find {{packages_dir}} -name "*.tar.gz" -o -name "*.zip" -o -name "*.pkg" 2>/dev/null | wc -l | xargs echo "Package files:" # Clean package artifacts @package-clean: echo "๐Ÿงน Cleaning package artifacts..." rm -rf {{packages_dir}} mkdir -p {{packages_dir}} echo "โœ… Package artifacts cleaned"