mmo3
is a simple command-line tool built to manage O3DE (Open 3D Engine
) manifests for projects and engines.
If you're working with multiple versions of O3DE engines and their respective manifests, mmo3
allows you to effortlessly switch between them, create new manifest configurations, and manage project setups without manually copying files.
O3DE configurations are stored in JSON files (e.g., o3de_manifest.json
), and it's often necessary to use different engine versions, project setups, or attached gems—all of which may require different manifests. MMO3
simplifies the process of switching between and managing these manifests stored in ~/.o3de
.
- List available manifests: List all stored manifest files within the
~/.manifests
folder. - Set active manifest: Switch the active
o3de_manifest.json
by copying a stored manifest to the required location (~/.o3de/o3de_manifest.json
). - Create new manifests: Generate new placeholder manifests that you can customize.
- Open manifests: Open any manifest directly in a text editor (defaults to
nano
but can be customized to another editor likevim
orcode
). - Duplicate existing manifests: Easily duplicate an existing manifest and give it a new name.
- Version checking: Quickly check the version of the
mmo3
tool installed.
- Python 3.x
- Git
- Unix system
# Update package list and upgrade existing packages
sudo apt update
sudo apt upgrade -y
# Install Python 3 and pip
sudo apt install python3 python3-pip -y
# Check Python and Pip version
python3 --version
pip3 --version
- Clone this repository:
git clone https://github.com/wc-robotec/mmo3.git
cd mmo3
- Run the installation script :
sh ./install.sh
This will check for the ~/.manifests
directory and create it if necessary. It will then copy the mmo3.py script to /usr/local/bin/ for global access and set the appropriate executable permissions.
If you want to install the mmo3
script to a custom location (for example, if you don't have root permissions to write into /usr/local/bin/
), specify your desired installation path as an argument to the installation script:
sh ./install.sh /your/custom/directory
Ensure that the specified installation path (e.g., /your/custom/directory
) is added to your $PATH
. For example, you can add it to your .bashrc or .zshrc:
export PATH=$PATH:/your/custom/directory
Remember to source your configuration file:
source ~/.bashrc # or source ~/.zshrc
The simplest way to start using mmo3
is by running mmo3 -h
to check available commands:
mmo3 -h
- List all manifests :
mmo3 -list # or mmo3 -ls
This will display all the manifest files stored in ~/.manifests
.
- Set an active manifest :
mmo3 -set engine_v2.json
Copies engine_v2.json from ~/.manifests
to ~/.o3de/o3de_manifest.json
, making it the currently active manifest.
- Create a new manifest :
mmo3 -new my_new_manifest.json
Creates a new manifest file with some defaults in the ~/.manifests
directory.
- Open a manifest (default nano) :
mmo3 -open engine_v1.json
This opens the specified manifest directly in nano for editing. If no specific manifest is provided, it will open the currently active one located in ~/.o3de/o3de_manifest.json
.
- Duplicate a manifest :
mmo3 -duplicate engine_v1.json
Duplicates an existing manifest and lets the user name the duplicated file.
- Check the version :
mmo3 -version
- List all manifests when working on multiple projects:
mmo3 -ls
Output:
Available manifests:
- o3de_manifest_temp.json
- o3de_manifest_test.json
- o3de_manifest_2409.json <-- currently used
- o3de_manifest_23101.json
- Set an active manifest for project work:
mmo3 -set o3de_manifest_2409.json
Output:
The manifest 'o3de_manifest_2409.json' is now set as the active one.
- Create a new manifest for a new project you're working on:
mmo3 -n new_project_manifest.json
Output:
Created new manifest - 'new_project_manifest.json'
mmo3.py
manages the o3de_manifest.json
required by Open 3D Engine (O3DE). It works by copying and replacing the manifest located at ~/.o3de/o3de_manifest.json
with the JSON files stored in a separate directory (~/.manifests
).
Here’s a breakdown of the basic functionality:
- Command-line arguments : The script takes arguments (like
-list
,-set
,-new
) to instruct what action to perform. - Manifest directory management : Manifests are stored locally in
~/.manifests
. These can be selected, created, and duplicated without manual file copying or renaming. - Active manifest : The active manifest file resides in
~/.o3de/o3de_manifest.json
, replaced as needed when you switch between different configurations.
The tool is designed to streamline development across different engine versions, projects, and attached gems, by allowing quick swaps of configuration files.
GNU GENERAL PUBLIC LICENSE.
Everyone is permitted to copy and distribute verbatim copies of this product.
Have ideas for features? Found a bug? Feel free to open an issue or submit a pull request 😊