378 lines
13 KiB
Plaintext
Raw Normal View History

feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
# Tools Module - Development Tools and Utilities
# Commands for development utilities, plugin management, and system tools
# 🔍 VERSION AND VALIDATION COMMANDS
# Check nushell version consistency
[no-cd]
validate-nushell:
@echo "🔍 Validating nushell version consistency..."
@{{justfile_directory()}}/scripts/run.sh --check-only
# Fix nushell version mismatches
[no-cd]
fix-nushell:
@echo "🔧 Fixing nushell version mismatches..."
@{{justfile_directory()}}/scripts/run.sh --fix --check-only
# Update nu dependency versions
[no-cd]
update-nu-versions:
@echo "🔄 Updating nu dependency versions..."
@{{justfile_directory()}}/scripts/run.sh update_nu_versions.nu
# List current nu dependency versions
[no-cd]
list-nu-versions:
@echo "📋 Current nu dependency versions:"
@{{justfile_directory()}}/scripts/run.sh update_nu_versions.nu list
# Update nushell submodule
[no-cd]
update-nushell:
@echo "🔄 Updating nushell submodule..."
@bash {{justfile_directory()}}/scripts/sh/update_nushell.sh update
# 🆕 PLUGIN MANAGEMENT COMMANDS
# Create a new plugin from template
[no-cd]
make-plugin PLUGIN_NAME:
@echo "🆕 Creating new plugin: {{PLUGIN_NAME}}"
@{{justfile_directory()}}/scripts/run.sh make_plugin.nu {{PLUGIN_NAME}}
# Install specific plugin locally
[no-cd]
install-plugin PLUGIN:
@echo "📥 Installing {{PLUGIN}} locally..."
@cd {{PLUGIN}} && cargo build --release
@echo "To add to nushell: plugin add ./{{PLUGIN}}/target/release/{{PLUGIN}}"
# Remove plugin from workspace
[no-cd]
remove-plugin PLUGIN:
@echo "🗑️ Removing plugin {{PLUGIN}}..."
@if [ -d "{{PLUGIN}}" ]; then \
echo "Are you sure you want to remove {{PLUGIN}}? (y/N)"; \
read -r confirm; \
if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
rm -rf "{{PLUGIN}}"; \
echo "✅ Removed {{PLUGIN}}"; \
else \
echo "❌ Cancelled"; \
fi; \
else \
echo "Plugin {{PLUGIN}} not found"; \
fi
# List all plugins
[no-cd]
list-plugins:
@echo "📋 Available plugins:"
@for plugin in nu_plugin_*; do \
if [ -d "$$plugin" ]; then \
echo " - $$plugin"; \
fi; \
done
# Show plugin information
[no-cd]
plugin-info PLUGIN:
@echo " Plugin Information: {{PLUGIN}}"
@if [ -d "{{PLUGIN}}" ]; then \
echo "Name: {{PLUGIN}}"; \
echo "Path: $(pwd)/{{PLUGIN}}"; \
if [ -f "{{PLUGIN}}/Cargo.toml" ]; then \
echo "Version: $(grep '^version' {{PLUGIN}}/Cargo.toml | cut -d'"' -f2)"; \
echo "Description: $(grep '^description' {{PLUGIN}}/Cargo.toml | cut -d'"' -f2 || echo 'Not available')"; \
fi; \
echo "Binary exists: $([ -f {{PLUGIN}}/target/release/{{PLUGIN}} ] && echo 'Yes' || echo 'No')"; \
echo "Last modified: $(stat -c %y {{PLUGIN}} 2>/dev/null || stat -f %m {{PLUGIN}} 2>/dev/null || echo 'Unknown')"; \
else \
echo "Plugin {{PLUGIN}} not found"; \
fi
# 🛠️ DEVELOPMENT TOOLS
# Run command on specific plugin
plugin PLUGIN CMD:
@echo "🔧 Running '{{CMD}}' on {{PLUGIN}}"
@cd {{PLUGIN}} && {{CMD}}
# Check specific plugin
[no-cd]
check-plugin PLUGIN:
@echo "🔍 Checking {{PLUGIN}}..."
@cd {{PLUGIN}} && cargo check
# Watch for changes and rebuild (requires entr)
[no-cd]
watch PLUGIN:
#!/usr/bin/env bash
if command -v entr >/dev/null 2>&1; then
echo "👀 Watching {{PLUGIN}} for changes..."
find {{PLUGIN}}/src -name "*.rs" | entr just build-plugin {{PLUGIN}}
else
echo "❌ entr not installed. Install with: brew install entr (macOS) or apt install entr (Ubuntu)"
fi
# Interactive plugin selection (requires fzf)
[no-cd]
interactive:
#!/usr/bin/env bash
if command -v fzf >/dev/null 2>&1; then
echo "🎯 Interactive Plugin Selection"
PLUGIN=$(ls -d nu_plugin_* | fzf --prompt="Select plugin: ")
if [ -n "$PLUGIN" ]; then
ACTION=$(echo -e "build\ntest\ncheck\nlint\nupstream-check\nupstream-merge\ninstall" | fzf --prompt="Select action: ")
if [ -n "$ACTION" ]; then
case $ACTION in
"upstream-check") just upstream-check-plugin $PLUGIN ;;
"upstream-merge") just upstream-merge $PLUGIN ;;
"build") just build-plugin $PLUGIN ;;
"test") just test-plugin $PLUGIN ;;
"check") just check-plugin $PLUGIN ;;
"lint") cd $PLUGIN && cargo clippy ;;
"install") just install-plugin $PLUGIN ;;
esac
fi
fi
else
echo "❌ fzf not installed. Install with: brew install fzf (macOS) or apt install fzf (Ubuntu)"
fi
# 📊 SYSTEM INFORMATION
# Show environment configuration
[no-cd]
env-info:
@echo "🌍 Environment Configuration:"
@if [ -f env ]; then \
cat env; \
else \
echo "No env file found"; \
fi
# Show system information
[no-cd]
system-info:
#!/usr/bin/env bash
echo "💻 System Information:"
echo "OS: $(uname -s)"
echo "Architecture: $(uname -m)"
echo "Nushell: $(nu --version 2>/dev/null || echo 'Not installed')"
echo "Rust: $(rustc --version 2>/dev/null || echo 'Not installed')"
echo "Cargo: $(cargo --version 2>/dev/null || echo 'Not installed')"
echo "Just: $(just --version 2>/dev/null || echo 'Not installed')"
echo "Docker: $(docker --version 2>/dev/null || echo 'Not installed')"
echo "Git: $(git --version 2>/dev/null || echo 'Not installed')"
# Validate setup and dependencies
[no-cd]
validate:
@echo "✅ Validating setup..."
@echo "Checking required tools:"
@command -v nu >/dev/null 2>&1 && echo "✅ nushell" || echo "❌ nushell (required)"
@command -v cargo >/dev/null 2>&1 && echo "✅ cargo" || echo "❌ cargo (required)"
@command -v git >/dev/null 2>&1 && echo "✅ git" || echo "❌ git (required)"
@command -v just >/dev/null 2>&1 && echo "✅ just" || echo "❌ just (optional but recommended)"
@command -v docker >/dev/null 2>&1 && echo "✅ docker" || echo "⚠️ docker (optional for cross-compilation)"
@echo ""
@echo "Checking directory structure:"
@[ -d scripts ] && echo "✅ scripts directory" || echo "❌ scripts directory"
@[ -d etc ] && echo "✅ etc directory" || echo "❌ etc directory"
@[ -f etc/plugin_registry.toml ] && echo "✅ plugin registry" || echo "❌ plugin registry"
@[ -f etc/upstream_exclude.toml ] && echo "✅ upstream exclusions" || echo "⚠️ upstream exclusions (optional)"
@[ -f env ] && echo "✅ env file" || echo "⚠️ env file (optional)"
@echo ""
@echo "Plugin directories:"
@ls -d nu_plugin_* 2>/dev/null | wc -l | xargs echo "📦 Found plugins:"
# 🧹 CLEANUP COMMANDS
# Clean all build artifacts
[no-cd]
clean:
2025-09-20 19:19:28 +01:00
#!/usr/bin/env bash
echo "🧹 Cleaning build artifacts..."
# Clean plugin target directories
for plugin in nu_plugin_*; do
if [ -d "$plugin/target" ]; then
echo "Removing $plugin/target..."
rm -rf "$plugin/target"
fi
done
# Clean API plugin target directories
for plugin in api_nu_plugin_*; do
if [ -d "$plugin/target" ]; then
echo "Removing $plugin/target..."
rm -rf "$plugin/target"
fi
feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
done
2025-09-20 19:19:28 +01:00
# Clean wrks subdirectory targets
if [ -d "wrks" ]; then
for plugin in wrks/nu_plugin_*; do
if [ -d "$plugin/target" ]; then
echo "Removing $plugin/target..."
rm -rf "$plugin/target"
fi
done
fi
2025-09-20 19:25:54 +01:00
# Also clean nushell submodule if it exists (use cargo clean for complex projects)
if [ -d "nushell" ]; then
echo "Cleaning nushell submodule..."
cd nushell && cargo clean && cd ..
2025-09-20 19:19:28 +01:00
fi
feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
# Clean specific plugin
[no-cd]
clean-plugin PLUGIN:
@echo "🧹 Cleaning {{PLUGIN}}..."
2025-09-20 19:19:28 +01:00
@if [ -d "{{PLUGIN}}/target" ]; then \
echo "Removing {{PLUGIN}}/target..."; \
rm -rf "{{PLUGIN}}/target"; \
else \
echo "No target directory found for {{PLUGIN}}"; \
fi
feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
# Clean distribution files
[no-cd]
clean-dist:
@echo "🧹 Cleaning distribution files..."
2025-09-20 19:13:37 +01:00
@rm -rf distribution
@echo "✅ Cleaned distribution directory"
feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
# Clean all caches
[no-cd]
clean-all:
@echo "🧹 Cleaning everything..."
@just clean
@just clean-dist
@echo "✅ All clean!"
# 🔄 MAINTENANCE COMMANDS
# Update all dependencies (careful!)
[no-cd]
update-deps:
@echo "⬆️ Updating dependencies (this may break things)..."
@for plugin in nu_plugin_*; do \
if [ -d "$$plugin" ]; then \
echo "Updating deps in $$plugin..."; \
cd "$$plugin" && cargo update && cd ..; \
fi; \
done
# Fix common issues automatically
[no-cd]
auto-fix:
@echo "🔧 Running automatic fixes..."
@just fix-nushell
@just fmt
@just lint-fix
@echo "✅ Automatic fixes completed"
# Generate project statistics
[no-cd]
stats:
@echo "📊 Project Statistics:"
@echo "===================="
@echo "Plugins: $(ls -d nu_plugin_* 2>/dev/null | wc -l)"
@echo "Rust files: $(find nu_plugin_*/src -name "*.rs" 2>/dev/null | wc -l)"
@echo "Lines of code: $(find nu_plugin_*/src -name "*.rs" -exec wc -l {} + 2>/dev/null | tail -1 | awk '{print $1}' || echo '0')"
@echo "Test files: $(find nu_plugin_* -name "*test*.rs" -o -name "tests" -type d 2>/dev/null | wc -l)"
@echo "Documentation files: $(find . -name "*.md" 2>/dev/null | wc -l)"
# 🔧 CONFIGURATION MANAGEMENT
# Show configuration files
[no-cd]
config-list:
@echo "📁 Configuration Files:"
@echo "======================"
@echo "Main configuration:"
@[ -f etc/plugin_registry.toml ] && echo "✅ etc/plugin_registry.toml" || echo "❌ etc/plugin_registry.toml"
@[ -f etc/build_targets.toml ] && echo "✅ etc/build_targets.toml" || echo "❌ etc/build_targets.toml"
@[ -f etc/upstream_exclude.toml ] && echo "✅ etc/upstream_exclude.toml" || echo "⚠️ etc/upstream_exclude.toml"
@echo ""
@echo "Environment:"
@[ -f env ] && echo "✅ env" || echo "⚠️ env (optional)"
@echo ""
@echo "Build configuration:"
@[ -f justfile ] && echo "✅ justfile" || echo "❌ justfile"
@[ -f Dockerfile.cross ] && echo "✅ Dockerfile.cross" || echo "❌ Dockerfile.cross"
# Edit configuration file
[no-cd]
config-edit FILE:
@echo "✏️ Editing configuration: {{FILE}}"
@${EDITOR:-nano} {{FILE}}
# Backup configuration
[no-cd]
config-backup:
@echo "💾 Backing up configuration..."
@mkdir -p backups/config-$(date +%Y%m%d-%H%M%S)
@cp etc/*.toml backups/config-$(date +%Y%m%d-%H%M%S)/ 2>/dev/null || true
@[ -f env ] && cp env backups/config-$(date +%Y%m%d-%H%M%S)/ || true
@echo "✅ Configuration backed up to backups/config-$(date +%Y%m%d-%H%M%S)/"
# 📊 TOOLS INFORMATION
# Show tools help
[no-cd]
tools-help:
@echo "🛠️ Tools Module Help"
@echo "===================="
@echo ""
@echo "VERSION & VALIDATION:"
@echo " validate-nushell - Check nushell version consistency"
@echo " fix-nushell - Fix version mismatches"
@echo " update-nu-versions - Update nu dependency versions"
@echo " list-nu-versions - List current versions"
@echo " update-nushell - Update nushell submodule"
@echo ""
@echo "PLUGIN MANAGEMENT:"
@echo " make-plugin NAME - Create new plugin from template"
@echo " install-plugin PLUGIN - Install plugin locally"
@echo " remove-plugin PLUGIN - Remove plugin from workspace"
@echo " list-plugins - List all plugins"
@echo " plugin-info PLUGIN - Show plugin information"
@echo ""
@echo "DEVELOPMENT TOOLS:"
@echo " plugin PLUGIN CMD - Run command on plugin"
@echo " check-plugin PLUGIN - Check specific plugin"
@echo " watch PLUGIN - Watch for changes (requires entr)"
@echo " interactive - Interactive plugin selection (requires fzf)"
@echo ""
@echo "SYSTEM INFORMATION:"
@echo " env-info - Show environment configuration"
@echo " system-info - Show system information"
@echo " validate - Validate setup and dependencies"
@echo ""
@echo "CLEANUP:"
@echo " clean - Clean all build artifacts"
@echo " clean-plugin PLUGIN - Clean specific plugin"
@echo " clean-dist - Clean distribution files"
@echo " clean-all - Clean everything"
@echo ""
@echo "MAINTENANCE:"
@echo " update-deps - Update all dependencies"
@echo " auto-fix - Run automatic fixes"
@echo " stats - Generate project statistics"
@echo ""
@echo "CONFIGURATION:"
@echo " config-list - Show configuration files"
@echo " config-edit FILE - Edit configuration file"
@echo " config-backup - Backup configuration"
@echo ""
@echo "EXAMPLES:"
@echo " just make-plugin nu_plugin_myfeature"
@echo " just watch nu_plugin_clipboard"
@echo " just interactive"
@echo " just plugin nu_plugin_image 'cargo bench'"