Skip to content

Larusso/unity-version-manager

Repository files navigation

unity-version-manager

A command-line application to manage unity versions. This tool allows to install and manage multiple unity versions on a system from the command-line. This tool is compatible with Unity-Hub and will use the installation destination configured there by default.

Installation

install with cargo

cargo install unity-version-manager

install from source with cmake

git clone [email protected]:Larusso/unity-version-manager.git
cd unity-version-manager
make install

install from source with cargo

git clone [email protected]:Larusso/unity-version-manager.git
cd unity-version-manager
cargo install --path ./uvm

Usage

The uvm (unity-version-manager) is a command-line tool for managing Unity installations and projects.

uvm [OPTIONS] <COMMAND>

Core Commands

Command Description
install Install specified Unity version with optional modules
uninstall Uninstall Unity version or specific modules
list List installed Unity versions (from Hub, system, or all)
launch Launch Unity with a project, optionally with specific build platform

Project & Version Management

Command Description
detect Find which Unity version was used to create a project
modules List available modules for a specific Unity version
version Unity version utilities (latest, matching version requirements)

Detailed Command Usage

Install Unity

# Install specific Unity version
uvm install 2023.1.4f1

# Install with additional modules
uvm install 2023.1.4f1 --module android --module ios

# Install to custom location
uvm install 2023.1.4f1 /path/to/install

# Install with sync modules (dependencies)
uvm install 2023.1.4f1 --module android --with-sync

List Unity Installations

# List Unity Hub installations (default)
uvm list

# List all Unity installations
uvm list --all

# List system installations only
uvm list --system

# Show path only
uvm list --path

Launch Unity Projects

# Launch Unity with current directory as project
uvm launch

# Launch specific project
uvm launch /path/to/project

# Launch with specific platform
uvm launch /path/to/project --platform android

# Auto-detect project and use its Unity version
uvm launch --force-project-version

Version Management

# Get latest LTS version
uvm version latest --stream lts

# Find versions matching requirement
uvm version matching ">=2023.1"

# List modules for specific version
uvm modules 2023.1.4f1

# List modules by category
uvm modules 2023.1.4f1 --category platforms

Global Options

Option Description
-d, --debug Print debug output
-v, --verbose Print more output (can be repeated)
-c, --color Control color output: auto, always, never
-h, --help Print help information
-V, --version Print version information

Development

Workspace Structure

This project uses a Cargo workspace with multiple crates:

Crate Description
uvm Main CLI application (produces uvm binary)
unity-version Unity version parsing and management
unity-hub Unity Hub integration
unity-types Base Unity data types
uvm_install Unity installation logic
uvm_live_platform Unity release platform API
uvm_install_graph Installation dependency graph
uvm_move_dir Cross-platform directory operations

Building from Source

git clone [email protected]:Larusso/unity-version-manager.git
cd unity-version-manager
cargo build --workspace

Running Tests

cargo test --workspace

Running Development Version

# Run the uvm binary directly
cargo run --bin uvm -- --help

# Install locally for testing
cargo install --path ./uvm

License

Apache License 2.0

About

A commandline application to manage unity versions

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages