- Lua 98.6%
- Makefile 1.4%
| config | ||
| test | ||
| .fragjan | ||
| .gitignore | ||
| .merkwerk | ||
| .version_history | ||
| commands.lua | ||
| deps.lua | ||
| index.lua | ||
| init.lua | ||
| install.lua | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| semver.lua | ||
| sig.lua | ||
| verify.lua | ||
| VERSION | ||
daw-module-manager
Module management library for DAW host projects.
Handles registry index, dependency checking, download and verification
of .stpkg packages. Used as a git submodule in DAW host projects.
Integration
git submodule add ssh://forgejo@smida.dragons-at-work.de:4022/DAW/daw-module-manager.git \
src/lib/daw-module-manager
Add to package.path in the host project:
package.path = "src/lib/daw-module-manager/src/?.lua;"
.. "src/lib/daw-module-manager/src/?/init.lua;"
.. package.path
Usage
All functions take a single opts table -- no hardcoded paths or
project names. The host project provides all config.
The host project config (*.conf) must include:
[module_registry]
url = https://smida.dragons-at-work.de
index_repo = DAW/daw-module-registry-index
index_branch = main
index_path = config/registry-index.json
index_sig = config/registry-index.json.minisig
keyring_path = config/daw-keyring.pub
The adapter (adapters/ui/init.lua) builds opts from cfg.module_registry:
local mm = require("daw.module_manager")
local function build_ctx(cfg)
return {
project = cfg.module and cfg.module.id,
modules_dir = cfg.modules and cfg.modules.dir,
registry = cfg.module_registry,
}
end
local opts = build_ctx(cfg)
opts.core_ver = merkwerk.get_version_string()
-- List installed modules local installed, err = mm.list(opts)
-- Install from registry local ok, err = mm.install(opts) -- opts.id required -- opts.version optional -- opts.yes = true skips prompt
-- Install from local file local ok, err = mm.install_local({ path = "./storage-pg-0.2.0.stpkg", id = "storage-pg", keyring_path = opts.registry.keyring_path, modules_dir = opts.modules_dir, })
-- Update registry index local ok, err = mm.update_index(opts)
## Development
```bash
git clone .../daw-module-manager
cd daw-module-manager
git clone .../daw-lua-common src/lib/daw-lua-common
make test
License
ISC