1 stable release

1.0.0 Nov 17, 2024
0.2.0 Nov 16, 2024
0.1.5 Nov 14, 2024
0.1.4 Aug 27, 2024
0.1.3 Aug 12, 2024

#31 in Configuration

Download history 168/week @ 2024-08-26 22/week @ 2024-09-16 24/week @ 2024-09-23 21/week @ 2024-09-30 206/week @ 2024-11-11 156/week @ 2024-11-18 31/week @ 2024-12-02

393 downloads per month

MIT license

105KB
2.5K SLoC

⚙️ Universal Project Manager

Upman is a CLI tool that provides OS and language independent commands for all aspects of project management.

Crates.io Total Downloads

Screenshot 2024-11-17 173152

Windows OS Compatible Mac OS Compatible Linux OS Compatible

View on Crates.io

🛠️ Installation

Method #1 (Manual Installation)

Install the binary from Releases for your OS, and place it in a folder recognized by your PATH or add it's location to your PATH.

Method #2 (Automatic Installation - Crates.io - requires Rust)

Open a terminal (with Rust installed on your machine)

cargo install upman

Method #3 (Build from the repo - requires Rust)

Open a terminal (with Rust installed on your machine)

git clone https://github.com/james-kaddissi/universal_project_manager.git
cd universal_project_manager
cargo build



📄 Command Guide

Project Creation

upman new <PROJECT_NAME> <PROJECT_LANGUAGE> *FLAGS*
<PROJECT_NAME> - The desired name of the project/root directory.
<PROJECT_LANGUAGE> - The main programming language of the project.
FLAGS - add any amount of these flags to include in project creation. (Flags can be set to true by default in your config file)
  • --git - initializes the directory as a git repository
  • --ignore - initializes a .gitignore in the root directory
  • --venv - initializes a virtual environment in the root directory
  • --license - initializes your default license (set in your config file) in the root directory
  • --readme - initializes a README.md in your root directory
  • --tests - initializes a tests directory in your root directory
  • --docs - initializes a docs directory in your root directory
  • --docker - initializes docker in the project

Project creation from an existing directory

upman init


Package Management

Only works with languages that have a package manager (pip, cargo, npm, etc.)

upman add <PACKAGE_NAME>
<PACKAGE_NAME> - the desired name of the package to be added.


Project Execution

upm run
Runs the main entry point of the project


Preferences Configuration

upm config <MODIFIER> <ARGUMENT>
- defines what configuration you'd like to change
- specifies the specific value to change or change too

Modifiers:

  • main - sets the main path of the project. Argument is the path.
  • defaults - toggles the specified (argument) default flag to true or false. Arguments: (git, ignore, docs, etc.)
  • editor - sets your default code editor. Argument is the editor name.
  • license - sets your default license. Argument is the license name.
  • warnings - toggle on or off various warnings. Argument is the warning name (shown in the warning message itself)


Project Management

upm open <PROJECT>
Opens the specified PROJECT in the terminal and default editor
upm delete <PROJECT>
Deletes the specified PROJECT from your projects list
upm list <ARGUMENT>
Lists specifics about the entered ARGUMENT (editors, templates, licenses, projects, preferences, languages)


Miscellaneous Tools

upm template <ACTION> <TEMPLATE_NAME> **PROJECT_NAME** **PROJECT_LANGUAGE** **PROJECT_MAIN**
- which template feature to use (save, create, delete)
<TEMPLATE_NAME> - name of the template you are modifying

PROJECT_NAME PROJECT_LANGUAGE PROJECT_MAIN - Specifies the details of project creation (only required with the create ACTION)

  • Save - saves the current directory as a template under the specified name
  • Create - creates a UPM project using the specified template
  • Delete - deletes the specified template from your saved templates

upm script <ACTION> <SCRIPT_NAME> **SCRIPT_PATH**
- which script feature to use (save, delete, add)
<SCRIPT_NAME> - name of the script you are modifying

SCRIPT_PATH - Specifies the path of the script to save (only required with the save ACTION)

  • Save - saves the script at the specified path under the specified name
  • Delete - deletes the specified script from your saved scripts
  • Add - adds the specified script to your current working directory

upm secrets <ACTION> <SECRET_NAME> <SECRET_VALUE>
- which secrets feature to use (save/add, delete/remove, show)
<SECRET_NAME> - the name of the secret to modify
<SECRET_VALUE> the value of the specified secret
  • Save/Add - Adds a new secret with NAME and VALUE to your .env
  • Delete/Remove - Removes the specified secret from your .env
  • Show - Lists the secrets in your .env

Dependencies

~4–6MB
~107K SLoC