Skip to content

Releases: prjseal/Package-Script-Writer

v1.1.2 - Process Cleanup on Exit

20 Jan 18:24
b9f2765

Choose a tag to compare

Fixed

  • Process Cleanup on Exit - Fixed issue where dotnet run processes spawned by scripts would continue running in the background after the CLI tool exited

v1.1.1 - main menu exit button

08 Jan 23:32

Choose a tag to compare

Added

Exit Option in Interactive Mode - Added "Exit" option to the main menu for graceful application exit

v1.1.0 - Package search features and UX improvements

08 Jan 07:47
4fc6ff5

Choose a tag to compare

Thanks to feedback from @OwainWilliams I have improved the package search features when editing a script through the interactive CLI.

Added

  • Enhanced Package Selection System - Completely redesigned package selection workflow with multiple discovery methods
    • New main menu with 5 options for adding packages
    • "Select from popular Umbraco packages" - Browse all marketplace packages with multi-select
    • "Search for package on Umbraco Marketplace" - Search by keyword in marketplace
    • "Search for package on nuget.org" - Full NuGet.org search integration via API
    • "Modify selected packages" - Review and remove previously selected packages
    • "Done - finish package selection" - Exit package selection loop
  • Cancel Options - Added "Cancel" option at the top of all package selection lists to return to main menu
  • Immediate Version Selection - Version selection now happens immediately after selecting each package (instead of batched after all selections)
  • Modify Selected Packages Feature - New screen to review and remove selected packages
    • All packages displayed pre-selected with two-line format (Package ID on first line, version on second line with dash prefix)
    • Can uncheck packages to remove them
    • Supports removing all packages (multi-select with Required(false))
  • NuGet.org Search Integration - Direct search of NuGet.org repository via API
    • Searches packages beyond Umbraco Marketplace
    • Returns up to 20 results
    • Displays package ID, truncated description (100 chars), and authors
    • Excludes pre-release packages by default

Changed

  • Package Selection Menu Structure - Reorganized from 3 options to 5-option main loop
    • Clearer menu option names: "Select from popular Umbraco packages" and "Search for package on Umbraco Marketplace"
    • All cancel operations now return to the main package selection menu instead of aborting
    • Package selection is now a continuous loop until user selects "Done"
  • Version Display in Modify Screen - Changed from single-line format PackageId (Version) to two-line format with dash prefix
    PackageId
      - Version
    

Fixed

  • Fixed compilation error in ModifySelectedPackagesAsync where .Select() was incorrectly called with a collection instead of individual items
  • Fixed issue where users could not press Enter if all packages were unchecked in the modify screen

v1.0.1 - Moved Community Templates API into PSW website

05 Jan 16:50

Choose a tag to compare

What's Changed

Moved Community Templates API into PSW website instead of from GitHub

v1.0.0 - First full release out now.

19 Dec 00:00
382a994

Choose a tag to compare

Package Script Writer CLI

NuGet
Downloads
.NET

An interactive command-line tool for generating Umbraco CMS installation scripts. Features a beautiful terminal UI built with Spectre.Console, supports 500+ Marketplace packages, and offers both interactive and automation modes.

Quick Start

# Install globally from NuGet
dotnet tool install --global PackageScriptWriter.Cli

# Launch interactive mode
psw

# Or use CLI mode for automation
psw --default
psw -p "uSync,Diplo.GodMode" -n MyProject

Key Features

  • 🎨 Beautiful Terminal UI - Built with Spectre.Console
  • 🚀 Dual Mode - Interactive prompts OR command-line automation
  • 📦 500+ Packages - Browse Umbraco Marketplace packages
  • 💾 Templates - Save and reuse configurations
  • 📊 History - Track all generated scripts
  • 🔒 Secure - Command validation and password protection
  • 🐳 Docker Ready - Optional Dockerfile generation

Installation

From NuGet (Recommended)

dotnet tool install --global PackageScriptWriter.Cli

From Source

git clone https://github.com/prjseal/Package-Script-Writer.git
cd Package-Script-Writer/src
dotnet pack PackageCliTool -c Release
dotnet tool install --global --add-source ./PackageCliTool/bin/Release PackageScriptWriter.Cli

Usage

Interactive Mode

psw

Navigate through the menu-driven interface:

  1. Use default script
  2. Use local template
  3. Use community template
  4. Load script from history
  5. Create new script
  6. Load Umbraco versions table
  7. Help

CLI Mode Examples

# Default script
psw --default

# Custom packages with specific versions
psw -p "uSync|17.0.0,Diplo.GodMode" -n MyBlog

# Full automation with unattended install
psw -p "uSync" -n MyProject -s MySolution \
    -u --database-type SQLite \
    --admin-email admin@example.com \
    --admin-password "SecurePass123!" \
    --auto-run

Template Commands

psw template save <name>        # Save current config as template
psw template load <name>        # Load saved template
psw template list               # List all templates
psw template delete <name>      # Delete template

History Commands

psw history list                # View recent scripts
psw history show <#>            # Show script details
psw history rerun <#>           # Re-run previous script

Requirements

  • .NET 10.0 SDK or later
  • Internet connection (for package information)

Documentation

📚 Complete Documentation: CLI Tool Documentation

Quick Links

Support

Version

Current Version: 1.0.0 (Stable)

Release Notes: Release History

License

MIT License - see LICENSE file for details.

Author

Paul Seal


⭐ If this tool helps you, consider giving it a star! ⭐

Documentation · Issues · Discussions

v1.0.0-beta008

17 Dec 19:12
c4717a0

Choose a tag to compare

v1.0.0-beta008 Pre-release
Pre-release

Marketplace update

v1.0.0-beta007

17 Dec 16:18
7012ad7

Choose a tag to compare

v1.0.0-beta007 Pre-release
Pre-release

What's Changed

  • Fix terminal output display issues in script execution by @prjseal in #158
  • Relax script validation for dotnet new commands by @prjseal in #159
  • Remove history show command and related code by @prjseal in #160
  • Add community templates feature design document by @prjseal in #161
  • Remove template show command feature by @prjseal in #162
  • Remove 'history stats' command feature by @prjseal in #163
  • Remove unused code from PackageCliTool by @prjseal in #164

Full Changelog: v1.0.0-beta006...v1.0.0-beta007

v1.0.0-beta006

15 Dec 09:16
d1ae13d

Choose a tag to compare

v1.0.0-beta006 Pre-release
Pre-release

What's Changed

  • Add GitHub Actions workflow for PackageCliTool PRs by @prjseal in #142
  • Fix history command to actually save generated scripts by @prjseal in #141
  • Fix history feature not working in interactive mode by @prjseal in #143
  • Remove unused code from PackageCliTool solution by @prjseal in #144
  • Remove unused GenericCache from caching system by @prjseal in #145
  • Delete pr-build-test.yml workflow by @prjseal in #146
  • Fix test result parsing in website-build-and-test workflow by @prjseal in #147
  • Add 'Create script from template' option to main CLI menu by @prjseal in #148
  • Add Phase 1 unit tests for core models by @prjseal in #149
  • Add Phase 2 unit tests for service classes by @prjseal in #150
  • Add Phase 3 unit tests for advanced components by @prjseal in #151
  • Add Phase 4 unit tests for configuration and API models by @prjseal in #152
  • Refactor service registration to follow DI best practices by @prjseal in #153
  • Add condition to PreBuild target to respect RunPreBuildEvent property by @prjseal in #154
  • Add comprehensive Mermaid flow diagrams for all template commands by @prjseal in #155
  • Simplify template configuration by removing --set and using standard CLI options by @prjseal in #156
  • Add script generation and action options to 'history show' command by @prjseal in #157

Full Changelog: v1.0.0-beta005...v1.0.0-beta006

v1.0.0-beta005

12 Dec 14:31
e615911

Choose a tag to compare

v1.0.0-beta005 Pre-release
Pre-release

Added Umbraco Version Table and made non interactive mode switches better.

Version Table

image

CLI flags

Now you can call it like this:

psw --default -p "uSync,our.umbraco.thedashboard" --auto-run

which will use a default script and override the packages part, and run a script like this:

# Ensure we have the latest Umbraco templates
dotnet new install Umbraco.Templates --force

# Create solution/project
dotnet new sln --name "MySolution"
dotnet new umbraco --force -n "MyProject"  --friendly-name "Administrator" --email "admin@example.com" --password "1234567890" --development-database-type SQLite
dotnet sln add "MyProject"


#Add starter kit
dotnet add "MyProject" package clean

#Add Packages
dotnet add "MyProject" package uSync
dotnet add "MyProject" package Our.Umbraco.TheDashboard

dotnet run --project "MyProject"
#Running

v1.0.0-beta004

10 Dec 09:13

Choose a tag to compare

v1.0.0-beta004 Pre-release
Pre-release

Fixed templates