mirror of
https://github.com/logos-co/logos-package-manager-module.git
synced 2026-08-27 10:31:10 +00:00
refactor_p2_changes_test
Logos Package Manager Module
Building with Nix (Recommended)
Outputs
.#lib: builds the plugin library (package_manager_plugin.{dylib|so}).#logos-package-manager-include: generates C/C++ headers from the built plugin.#cli: builds the command-line tool (lgpm).#default: combined output exposing bothlib/andinclude/
Build the module
nix build
Or build specific outputs:
nix build .#lib
nix build .#logos-package-manager-include
nix build .#default
Enter development shell
nix develop
Build manually in development shell
nix develop
mkdir build && cd build
cmake -GNinja ..
ninja
Building with CMake
If you don't want to use Nix, you can build directly with CMake:
mkdir build && cd build
cmake -GNinja \
-DLOGOS_CPP_SDK_ROOT=/path/to/logos-cpp-sdk \
-DLOGOS_LIBLOGOS_ROOT=/path/to/logos-liblogos \
..
ninja
Generated headers
When building via Nix, headers are generated by logos-cpp-generator from the
compiled plugin (package_manager_plugin.{dylib,so}) and installed under
$out/include. The include-only derivation can be built with:
nix build .#logos-package-manager-include
Command-Line Interface (lgpm)
The package manager includes a CLI tool for searching and installing packages.
Building the CLI
With Nix:
nix build .#cli
./result/bin/lgpm --help
With CMake (in development shell):
nix develop
mkdir build && cd build
cmake -GNinja ..
ninja lgpm
./bin/lgpm --help
Commands
Search packages
lgpm search <query>
Search packages by name or description.
List packages
lgpm list [--category <cat>] [--installed]
List all available packages. Optionally filter by category or show only installed packages.
Install packages
lgpm install <package> [packages...]
Install one or more packages. Dependencies are resolved automatically.
List categories
lgpm categories
List all available package categories.
Show package info
lgpm info <package>
Display detailed information about a specific package.
Global Options
| Option | Description |
|---|---|
--modules-dir <path> |
Set core modules installation directory |
--ui-plugins-dir <path> |
Set UI plugins installation directory |
--release <tag> |
GitHub release tag to use (default: latest) |
--json |
Output results in JSON format |
-h, --help |
Show help message |
-v, --version |
Show version information |
Examples
# Search for waku-related packages
lgpm search waku
# List all packages in JSON format
lgpm list --json
# List only installed packages
lgpm list --installed
# Install a package (with automatic dependency resolution)
lgpm install waku-module
# Install multiple packages
lgpm install waku-module nwaku-module
# Get detailed info about a package
lgpm info waku-module
# Install to a custom directory
lgpm --modules-dir /path/to/modules install waku-module
# Install from a specific release instead of "latest"
lgpm --release v2.1.0 install waku-module
# List packages available in a specific release
lgpm --release v2.1.0 list --json
Dependencies
- logos-cpp-sdk - Logos C++ SDK and code generator
- logos-liblogos - Logos core library
- logos-package - LGX package format library
- Qt6 (Core and Network)
Languages
C++
94%
Shell
3%
CMake
1.6%
C
1%
Nix
0.4%