Skip to content

v1.3.8 — Safe Command Execution

Choose a tag to compare

@SoftDryzz SoftDryzz released this 26 Feb 01:09
· 133 commits to master since this release

What's New

Directory Validation Before Execution

When running pm build, pm run, or pm test, ProjectManager now validates that the project directory exists before executing any command. If the directory has been moved or deleted:

❌ Project directory not found: /home/user/old-project
The directory may have been moved, renamed, or deleted.
To update the path, run:
  pm rename my-project --path /new/path

This replaces confusing shell errors like "The directory name is invalid" (Windows) or "No such file or directory" (Linux) with a clear, actionable message.

Shell Metacharacter Warning

When adding custom commands with pm commands add, ProjectManager now warns if the command contains shell special characters (&, |, ;, $, etc.):

⚠️  Command contains shell special characters: '&', '|'
  This is fine if intentional (e.g., chaining commands with '&&').
  If your command includes file paths with special characters,
  make sure they are properly quoted.

This is a non-blocking warning — commands like npm build && npm serve work perfectly fine.

Architecture Note

Default commands (gradle build, npm start, etc.) are static strings that never embed project paths. The working directory is set via Java's ProcessBuilder.directory() API, not interpolated into shell strings. This means the command execution architecture is inherently safe from path injection for all auto-detected commands.


Installation

📖 For complete installation instructions, troubleshooting, and build-from-source guide, read INSTALL.md

Quick install (first-time users)

  1. Download both assets from this release:

    • Source code (zip) — contains the install scripts
    • projectmanager-1.3.8.jar — the pre-built application
  2. Extract the ZIP and place the JAR next to the scripts/ folder:

ProjectManager/
├── scripts/
│   ├── install.ps1    ← Windows installer
│   ├── install.sh     ← Linux/Mac installer
│   └── INSTALL.md     ← 📖 Full installation guide
└── projectmanager-1.3.8.jar   ← place here
  1. Run the installer:

    • Linux/Mac: bash scripts/install.sh
    • Windows (PowerShell): powershell -ExecutionPolicy Bypass -File .\scripts\install.ps1
  2. Restart your terminal, then verify: pm help

⚠️ Having issues? Check the full installation guide for troubleshooting

Existing users

pm update

Tests

288 tests, 0 failures (14 new tests for directory validation and metacharacter detection)