| Crates.io | labt |
| lib.rs | labt |
| version | 0.3.12 |
| created_at | 2024-03-17 21:43:42.402028+00 |
| updated_at | 2024-12-30 21:03:10.1501+00 |
| description | Lab-t Lightweight Android build tool |
| homepage | https://gitlab.com/lab-tool/labt |
| repository | https://gitlab.com/lab-tool/labt |
| max_upload_size | |
| id | 1176839 |
| size | 948,539 |
LABt is a command line interface tool written in Rust for building your android projects on the terminal. It provides dependency management tools to easily add and resolve your project dependencies. It aims to work fully offline and only requiring network during resolution when the dependencies were not cached locally.
At its core, labt provides a plugin system to build applications. The plugins system provides lua scripting for easy to implement and lightweight plugins.
NB: This project is a working progress and currently very unstable
Install using cargo
cargo install labt
build from source
git clone https://gitlab.com/lab-tool/labt
cd labt
cargo build --release
# or
# cargo build --release --features vendored-lua
Currently the base support is on Linux based OS
future cross platform support is planned
Initialize a new a new android project
labt init <initializer url>
labt init https://gitlab.com/lab-tool/plugins/labt-java@latest
This creates a new project.
Add a dependency to your project
labt add androidx.appcompat:appcompat:1.1.0
the add subcommand automatically downloads and caches the provided dependency. You can also fetch the dependencies manually by running.
labt resolve
Labt on its own just manages your projects, its dependencies and sdkmodules. To do a build of your app,
you will need a plugin. Choose a plugin of your choice from any git compatible repository
and use it for your build proccess. For example, use labt-java
to build a java application.
labt plugin https://gitlab.com/lab-tool/plugins/labt-java@v0.1.0
Now you can run labt build and the plugin will build the application for you. If you have special
requirements to build your application check the LABt Lua API documentation on how to
create a custom plugin.
for more information you could try labt help
Usage: labt [COMMAND]
Commands:
add Adds a new project dependency
init Initializes a new project
resolve Fetches the project dependencies
build Builds the project
plugin Manage plugins
sdk Sdk manager
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
Here's a more concise version:
LABt's SDK Manager lets you manage Android SDK packages via a terminal interface. Sdk packages provide development tools to plugins e.g. aapt, r8, d8 and adb from google Android SDK packages.
Add repository: Use labt sdk add google for default android google repo or any third party repository by labt sdk add <name> <url>.
Interactive Management: Use labt sdk list <repo-name> to view
and toggle package actions (install, uninstall, upgrade/downgrade)
in a TUI.
Installing: labt sdk install <repo-name> --path <id> --version <version> to install a package non interactively.
Lua API Integration: Plugins can access SDK packages directly through LABt's Lua API. More details here.
local build = require("sdk:build")
local ok, stdout, stderr = build.get_aapt2("version")
local version
if ok then
version = stderr -- Note: `aapt2` outputs to `stderr`
else
error(stderr)
end
Labt on its own cant really do much. It provides tools to manage projects and their dependencies. To extend the capability of labt, it provides a powerful Lua scripting plugin system. This allows custom plugins to do the heavy lifting of building applications. For more information on plugin system check the LABt Lua API documentation.