nushell-plugins/justfile
Jesús Pérez 41455c5b3e
Some checks failed
Build and Test / Validate Setup (push) Has been cancelled
Build and Test / Build (darwin-amd64) (push) Has been cancelled
Build and Test / Build (darwin-arm64) (push) Has been cancelled
Build and Test / Build (linux-amd64) (push) Has been cancelled
Build and Test / Build (windows-amd64) (push) Has been cancelled
Build and Test / Build (linux-arm64) (push) Has been cancelled
Build and Test / Security Audit (push) Has been cancelled
Build and Test / Package Results (push) Has been cancelled
Build and Test / Quality Gate (push) Has been cancelled
feat: Add complete Nushell full distribution system
## Major Features Added

- **Complete distribution infrastructure**: Build, package, and distribute Nushell binary alongside plugins
- **Zero-prerequisite installation**: Bootstrap installers work on fresh systems without Rust/Cargo/Nushell
- **Cross-platform support**: Linux, macOS, Windows (x86_64, ARM64)
- **Self-contained packages**: Everything needed for complete Nushell environment

## New Components

### Build System
- `scripts/build_nushell.nu` - Build nushell with all workspace plugins
- `scripts/collect_full_binaries.nu` - Collect nu binary + all plugins
- `justfiles/full_distro.just` - 40+ new recipes for distribution workflows

### Bootstrap Installers (Zero Prerequisites)
- `installers/bootstrap/install.sh` - Universal POSIX installer (900+ lines)
- `installers/bootstrap/install.ps1` - Windows PowerShell installer (800+ lines)
- Complete platform detection, PATH setup, plugin registration

### Distribution System
- `scripts/create_distribution_packages.nu` - Multi-platform package creator
- `scripts/install_full_nushell.nu` - Advanced nu-based installer
- `scripts/verify_installation.nu` - Installation verification suite
- `scripts/lib/common_lib.nu` - Shared utilities and logging

### Configuration Management
- `scripts/templates/default_config.nu` - Complete nushell configuration (500+ lines)
- `scripts/templates/default_env.nu` - Cross-platform environment setup
- `etc/distribution_config.toml` - Central distribution settings
- `scripts/templates/uninstall.sh` & `uninstall.ps1` - Clean removal

## Key Workflows

```bash
just build-full                # Build nushell + all plugins
just pack-full-all              # Create packages for all platforms
just verify-full                # Verify installation
just release-full-cross         # Complete cross-platform release
```

## Installation Experience

- One-liner: `curl -sSf https://your-url/install.sh | sh`
- Multiple modes: user, system, portable installation
- Automatic plugin registration with verification
- Professional uninstall capability

## Benefits

-  Solves bootstrap problem - no prerequisites needed
-  Production-ready distribution system
-  Complete cross-platform support
-  Professional installation experience
-  Integrates seamlessly with existing plugin workflows
-  Enterprise-grade verification and logging
2025-09-24 18:52:07 +01:00

101 lines
2.6 KiB
Makefile

# Nushell Plugins Development Justfile
# Modular task runner with organized command categories
# Set shell to bash for compatibility
set shell := ["bash", "-c"]
# Import all module justfiles
import 'justfiles/alias.just'
import 'justfiles/help.just'
import 'justfiles/build.just'
import 'justfiles/distro.just'
import 'justfiles/full_distro.just'
import 'justfiles/upstream.just'
import 'justfiles/qa.just'
import 'justfiles/tools.just'
# Default recipe - show modular help
[no-cd]
default:
@just help
# 📊 CORE STATUS COMMANDS (Most frequently used)
# Show plugin status dashboard
[no-cd]
status:
@echo "📊 Plugin Status Dashboard"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu
# Show detailed status for all plugins
[no-cd]
status-all:
@echo "📊 All Plugins Status"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu --all
# Show plugins requiring attention
[no-cd]
status-attention:
@echo "🚨 Plugins Requiring Attention"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu attention
# Update plugin status manually
[no-cd]
status-update PLUGIN STATUS:
@echo "🔄 Updating {{PLUGIN}} status to {{STATUS}}..."
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu update {{PLUGIN}} {{STATUS}}
# 🎯 MULTI-MODULE WORKFLOW COMMANDS
# These workflows combine commands from multiple modules
# Complete development workflow: validate → upstream check → build → test → status
[no-cd]
dev-flow:
@echo "🎯 Running complete development workflow..."
@just validate-nushell
@just upstream-check
@just build
@just test
@just status
# Complete release workflow: validate → build → collect → package
[no-cd]
release-flow:
@echo "🚀 Running complete release workflow..."
@just validate-nushell
@just build
@just collect
@just pack
# Cross-platform development workflow
[no-cd]
dev-flow-cross:
@echo "🌍 Running cross-platform development workflow..."
@just validate-nushell
@just upstream-check
@just build-cross-all
@just status
# CI simulation workflow (what GitHub Actions will run)
[no-cd]
ci-flow:
@echo "🤖 Simulating CI workflow..."
@just validate-nushell
@just fmt-check
@just lint
@just build-cross-all
@just test
@just collect-all
@just pack-checksums
# Update workflow: update nushell → fix version → update versions → check upstream
[no-cd]
update-flow:
@echo "🔄 Running update workflow..."
@just update-nushell
@just fix-nushell
@just update-nu-versions
@just upstream-check