326 lines
12 KiB
Plaintext
326 lines
12 KiB
Plaintext
![]() |
# Full Distribution Module - Complete Nushell Distribution
|
|||
|
# Commands for building, collecting, and packaging complete Nushell distributions
|
|||
|
|
|||
|
# 🚀 NUSHELL BUILD COMMANDS
|
|||
|
|
|||
|
# Build nushell with all workspace plugins
|
|||
|
[no-cd]
|
|||
|
build-nushell:
|
|||
|
@echo "🔨 Building Nushell with all workspace plugins..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu --release
|
|||
|
|
|||
|
# Build nushell in debug mode
|
|||
|
[no-cd]
|
|||
|
build-nushell-debug:
|
|||
|
@echo "🔨 Building Nushell (debug mode)..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu
|
|||
|
|
|||
|
# Build nushell for specific target
|
|||
|
[no-cd]
|
|||
|
build-nushell-target TARGET:
|
|||
|
@echo "🔨 Building Nushell for {{TARGET}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu --release --target {{TARGET}}
|
|||
|
|
|||
|
# Build nushell with custom features
|
|||
|
[no-cd]
|
|||
|
build-nushell-features FEATURES:
|
|||
|
@echo "🔨 Building Nushell with features: {{FEATURES}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu --release --features {{FEATURES}}
|
|||
|
|
|||
|
# Build nushell with custom profile
|
|||
|
[no-cd]
|
|||
|
build-nushell-profile PROFILE:
|
|||
|
@echo "🔨 Building Nushell with profile: {{PROFILE}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu --profile {{PROFILE}}
|
|||
|
|
|||
|
# Check nushell build dependencies
|
|||
|
[no-cd]
|
|||
|
build-nushell-deps:
|
|||
|
@echo "🔍 Checking Nushell build dependencies..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu deps
|
|||
|
|
|||
|
# Show nushell build information
|
|||
|
[no-cd]
|
|||
|
build-nushell-info:
|
|||
|
@echo "ℹ️ Nushell build information..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh build_nushell.nu info
|
|||
|
|
|||
|
# 📦 FULL BUILD WORKFLOWS
|
|||
|
|
|||
|
# Build everything: nushell + all plugins
|
|||
|
[no-cd]
|
|||
|
build-full:
|
|||
|
@echo "🚀 Building complete distribution (nushell + all plugins)..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-nushell
|
|||
|
@just build
|
|||
|
|
|||
|
# Build full release (optimized)
|
|||
|
[no-cd]
|
|||
|
build-full-release:
|
|||
|
@echo "🚀 Building full release distribution..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-nushell
|
|||
|
@just build-release
|
|||
|
|
|||
|
# Build full distribution for specific target
|
|||
|
[no-cd]
|
|||
|
build-full-target TARGET:
|
|||
|
@echo "🚀 Building full distribution for {{TARGET}}..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-nushell-target {{TARGET}}
|
|||
|
@just build-cross {{TARGET}}
|
|||
|
|
|||
|
# Build full distribution for all targets
|
|||
|
[no-cd]
|
|||
|
build-full-cross:
|
|||
|
@echo "🌍 Building full distribution for all targets..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-nushell
|
|||
|
@just build-cross-all
|
|||
|
|
|||
|
# 📋 FULL COLLECTION COMMANDS
|
|||
|
|
|||
|
# Collect all binaries (nushell + plugins)
|
|||
|
[no-cd]
|
|||
|
collect-full:
|
|||
|
@echo "📦 Collecting full binaries (nushell + plugins)..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --release --force
|
|||
|
|
|||
|
# Collect full binaries in debug mode
|
|||
|
[no-cd]
|
|||
|
collect-full-debug:
|
|||
|
@echo "📦 Collecting full binaries (debug mode)..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --force
|
|||
|
|
|||
|
# List available full binaries
|
|||
|
[no-cd]
|
|||
|
collect-full-list:
|
|||
|
@echo "📋 Available full binaries:"
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --list
|
|||
|
|
|||
|
# List available platforms for full collection
|
|||
|
[no-cd]
|
|||
|
collect-full-platforms:
|
|||
|
@echo "🌍 Available platforms for full collection:"
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --list-platforms
|
|||
|
|
|||
|
# Collect full binaries for specific platform
|
|||
|
[no-cd]
|
|||
|
collect-full-platform PLATFORM:
|
|||
|
@echo "📦 Collecting full binaries for {{PLATFORM}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --platform {{PLATFORM}} --release --force
|
|||
|
|
|||
|
# Collect full binaries for all platforms
|
|||
|
[no-cd]
|
|||
|
collect-full-all:
|
|||
|
@echo "🌍 Collecting full binaries for all platforms..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --all-platforms --release --force
|
|||
|
|
|||
|
# Collect only plugins (exclude nushell)
|
|||
|
[no-cd]
|
|||
|
collect-plugins-only:
|
|||
|
@echo "📦 Collecting plugins only..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --release --force --include-nushell=false
|
|||
|
|
|||
|
# Collect full binaries with custom profile
|
|||
|
[no-cd]
|
|||
|
collect-full-profile PROFILE:
|
|||
|
@echo "📦 Collecting full binaries with profile {{PROFILE}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh collect_full_binaries.nu --profile {{PROFILE}} --force
|
|||
|
|
|||
|
# 📦 FULL PACKAGING COMMANDS
|
|||
|
|
|||
|
# Create full distribution package
|
|||
|
[no-cd]
|
|||
|
pack-full:
|
|||
|
@echo "📦 Creating full distribution package..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --force
|
|||
|
|
|||
|
# Package full distribution for specific platform
|
|||
|
[no-cd]
|
|||
|
pack-full-platform PLATFORM:
|
|||
|
@echo "📦 Packaging full distribution for {{PLATFORM}}..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --platform {{PLATFORM}} --force
|
|||
|
|
|||
|
# Package full distribution for all platforms
|
|||
|
[no-cd]
|
|||
|
pack-full-all:
|
|||
|
@echo "🌍 Packaging full distribution for all platforms..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --all-platforms --force
|
|||
|
|
|||
|
# Package full distribution with checksums
|
|||
|
[no-cd]
|
|||
|
pack-full-checksums:
|
|||
|
@echo "🔐 Packaging full distribution with checksums..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --all-platforms --checksums --force
|
|||
|
|
|||
|
# Package full distribution with bootstrap installers
|
|||
|
[no-cd]
|
|||
|
pack-full-bootstrap:
|
|||
|
@echo "🚀 Packaging full distribution with bootstrap installers..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --all-platforms --checksums --bootstrap --force
|
|||
|
|
|||
|
# Show what would be packaged
|
|||
|
[no-cd]
|
|||
|
pack-full-list:
|
|||
|
@echo "📋 Files that would be packaged in full distribution:"
|
|||
|
@{{justfile_directory()}}/scripts/run.sh create_distribution_packages.nu --list
|
|||
|
|
|||
|
# 🚀 FULL RELEASE WORKFLOWS
|
|||
|
|
|||
|
# Complete full release workflow
|
|||
|
[no-cd]
|
|||
|
release-full:
|
|||
|
@echo "🚀 Running complete full release workflow..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-full-release
|
|||
|
@just collect-full
|
|||
|
@just pack-full-checksums
|
|||
|
|
|||
|
# Cross-platform full release
|
|||
|
[no-cd]
|
|||
|
release-full-cross:
|
|||
|
@echo "🌍 Running cross-platform full release workflow..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-full-cross
|
|||
|
@just collect-full-all
|
|||
|
@just pack-full-bootstrap
|
|||
|
|
|||
|
# Quick full release for current platform
|
|||
|
[no-cd]
|
|||
|
release-full-quick:
|
|||
|
@echo "⚡ Quick full release for current platform..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-full-release
|
|||
|
@just collect-full
|
|||
|
@just pack-full
|
|||
|
|
|||
|
# Full release for specific target
|
|||
|
[no-cd]
|
|||
|
release-full-target TARGET:
|
|||
|
@echo "🎯 Full release for {{TARGET}}..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-full-target {{TARGET}}
|
|||
|
@just collect-full-platform {{TARGET}}
|
|||
|
@just pack-full-platform {{TARGET}}
|
|||
|
|
|||
|
# Development full release (debug mode)
|
|||
|
[no-cd]
|
|||
|
release-full-dev:
|
|||
|
@echo "🛠️ Development full release..."
|
|||
|
@just validate-nushell
|
|||
|
@just build-full
|
|||
|
@just collect-full-debug
|
|||
|
@just pack-full
|
|||
|
|
|||
|
# 🔍 VERIFICATION COMMANDS
|
|||
|
|
|||
|
# Verify full installation
|
|||
|
[no-cd]
|
|||
|
verify-full:
|
|||
|
@echo "🔍 Verifying full installation..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh verify_installation.nu
|
|||
|
|
|||
|
# Test full installation locally
|
|||
|
[no-cd]
|
|||
|
test-install-full:
|
|||
|
@echo "🧪 Testing full installation locally..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh install_full_nushell.nu --test --verify
|
|||
|
|
|||
|
# Verify specific platform installation
|
|||
|
[no-cd]
|
|||
|
verify-full-platform PLATFORM:
|
|||
|
@echo "🔍 Verifying {{PLATFORM}} installation..."
|
|||
|
@{{justfile_directory()}}/scripts/run.sh verify_installation.nu --platform {{PLATFORM}}
|
|||
|
|
|||
|
# 📊 FULL DISTRIBUTION INFORMATION
|
|||
|
|
|||
|
# Show full distribution status
|
|||
|
[no-cd]
|
|||
|
full-status:
|
|||
|
@echo "📊 Full Distribution Status"
|
|||
|
@echo "=========================="
|
|||
|
@echo ""
|
|||
|
@echo "🔨 Build Status:"
|
|||
|
@if [ -f "nushell/target/release/nu" ] || [ -f "nushell/target/release/nu.exe" ]; then \
|
|||
|
echo " ✅ Nushell binary built"; \
|
|||
|
else \
|
|||
|
echo " ❌ Nushell binary not built"; \
|
|||
|
fi
|
|||
|
@echo ""
|
|||
|
@echo "📦 Collection Status:"
|
|||
|
@if [ -d "distribution" ]; then \
|
|||
|
echo " ✅ Distribution directory exists"; \
|
|||
|
echo " 📁 Platforms: $$(find distribution -maxdepth 1 -type d ! -name distribution | wc -l)"; \
|
|||
|
else \
|
|||
|
echo " ❌ Distribution directory not found"; \
|
|||
|
fi
|
|||
|
@echo ""
|
|||
|
@echo "📦 Packaging Status:"
|
|||
|
@if [ -d "bin_archives" ]; then \
|
|||
|
echo " ✅ Package archives exist"; \
|
|||
|
echo " 📦 Archives: $$(ls bin_archives/*.tar.gz bin_archives/*.zip 2>/dev/null | wc -l)"; \
|
|||
|
else \
|
|||
|
echo " ❌ No package archives found"; \
|
|||
|
fi
|
|||
|
|
|||
|
# Show full distribution help
|
|||
|
[no-cd]
|
|||
|
full-help:
|
|||
|
@echo "🚀 Full Distribution Module Help"
|
|||
|
@echo "==============================="
|
|||
|
@echo ""
|
|||
|
@echo "NUSHELL BUILD:"
|
|||
|
@echo " build-nushell - Build nushell with workspace plugins"
|
|||
|
@echo " build-nushell-debug - Build nushell (debug mode)"
|
|||
|
@echo " build-nushell-target TARGET - Build nushell for specific target"
|
|||
|
@echo " build-nushell-features FEAT - Build nushell with custom features"
|
|||
|
@echo " build-nushell-deps - Check nushell build dependencies"
|
|||
|
@echo " build-nushell-info - Show nushell build information"
|
|||
|
@echo ""
|
|||
|
@echo "FULL BUILD WORKFLOWS:"
|
|||
|
@echo " build-full - Build nushell + all plugins"
|
|||
|
@echo " build-full-release - Build full release distribution"
|
|||
|
@echo " build-full-target TARGET - Build full distribution for target"
|
|||
|
@echo " build-full-cross - Build full distribution for all targets"
|
|||
|
@echo ""
|
|||
|
@echo "FULL COLLECTION:"
|
|||
|
@echo " collect-full - Collect all binaries (nushell + plugins)"
|
|||
|
@echo " collect-full-debug - Collect full binaries (debug mode)"
|
|||
|
@echo " collect-full-list - List available full binaries"
|
|||
|
@echo " collect-full-platforms - List available platforms"
|
|||
|
@echo " collect-full-platform PLAT - Collect for specific platform"
|
|||
|
@echo " collect-full-all - Collect for all platforms"
|
|||
|
@echo " collect-plugins-only - Collect only plugins (no nushell)"
|
|||
|
@echo ""
|
|||
|
@echo "FULL PACKAGING:"
|
|||
|
@echo " pack-full - Create full distribution package"
|
|||
|
@echo " pack-full-platform PLATFORM - Package for specific platform"
|
|||
|
@echo " pack-full-all - Package for all platforms"
|
|||
|
@echo " pack-full-checksums - Package with checksums"
|
|||
|
@echo " pack-full-bootstrap - Package with bootstrap installers"
|
|||
|
@echo " pack-full-list - Show what would be packaged"
|
|||
|
@echo ""
|
|||
|
@echo "FULL RELEASE WORKFLOWS:"
|
|||
|
@echo " release-full - Complete full release workflow"
|
|||
|
@echo " release-full-cross - Cross-platform full release"
|
|||
|
@echo " release-full-quick - Quick full release (current platform)"
|
|||
|
@echo " release-full-target TARGET - Full release for specific target"
|
|||
|
@echo " release-full-dev - Development full release (debug)"
|
|||
|
@echo ""
|
|||
|
@echo "VERIFICATION:"
|
|||
|
@echo " verify-full - Verify full installation"
|
|||
|
@echo " test-install-full - Test full installation locally"
|
|||
|
@echo " verify-full-platform PLAT - Verify platform installation"
|
|||
|
@echo ""
|
|||
|
@echo "INFORMATION:"
|
|||
|
@echo " full-status - Show full distribution status"
|
|||
|
@echo " full-help - Show this help"
|
|||
|
@echo ""
|
|||
|
@echo "EXAMPLES:"
|
|||
|
@echo " just build-full-release"
|
|||
|
@echo " just collect-full-all"
|
|||
|
@echo " just pack-full-bootstrap"
|
|||
|
@echo " just release-full-cross"
|
|||
|
@echo " just verify-full"
|