# 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 package-binaries package-containers echo "โœ… All distribution packages created successfully" # Generate complete distributions @dist-generate: echo "๐Ÿ“ฆ Generating distributions..." {{nu}} {{tools_dir}}/distribution/generate-distribution.nu \ --version {{version}} \ --platforms {{platforms}} \ --variants {{variants}} \ --output-dir {{dist_dir}} \ --compress \ --generate-docs \ --parallel-builds={{parallel}} \ --validate-output \ --verbose={{verbose}} echo "โœ… Distributions generated successfully" # Package binaries for distribution @package-binaries: echo "๐Ÿ“‹ Packaging binaries..." {{nu}} {{tools_dir}}/package/package-binaries.nu \ --source-dir {{dist_dir}}/platform \ --output-dir {{packages_dir}}/binaries \ --platforms {{platforms}} \ --format archive \ --compress \ --strip \ --verbose={{verbose}} echo "โœ… Binaries packaged successfully" # Build container images @package-containers: echo "๐Ÿณ Building container images..." {{nu}} {{tools_dir}}/package/build-containers.nu \ --dist-dir {{dist_dir}} \ --tag-prefix {{provisioning_name}} \ --version {{version}} \ --platforms "linux/amd64" \ --cache \ --verbose={{verbose}} echo "โœ… Container images built successfully" # 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"