open source · build tool · v1.0.0

gbuild

A build tool for your Linux distro. Clone, pull, pick a target, build — all from one command.

↓ Download .deb View docs
jokerz@buildserver ~
$ gbuild myproject

[INFO ] Logging to: ~/.local/log/gbuild/20250514_143022_myproject.log
[INFO ] gbuild started for project: myproject
[INFO ] Repo already cloned — pulling latest changes ...
[OK   ] Repository updated.

Select make target   ↑/↓ navigate · Enter select
all
  clean
  test
  install

[INFO ] Selected target: all
[INFO ] gbuild: building 'myproject' target 'all' ...
gcc -o bin/myproject src/main.c src/util.c -lm
[OK   ] gbuild complete.
scroll

clone or pull

Automatically clones a fresh repo on first run. On subsequent runs it does a git pull instead — no manual setup.

🎯

interactive target picker

Reads your Makefile and presents an arrow-key driven TUI to select the build target. Pass --target to skip it.

📋

timestamped log files

Every run writes a log to ~/.local/log/gbuild/ named with a timestamp and project name. Never lose build output.

🗂

log browser

Built-in TUI log browser with live preview pane. Navigate, open in less, or delete old logs — all from the terminal.

🔧

configurable

Git URL, username, and credentials live in ~/.gconfig. Runtime flags --url and --user override the config when needed.

📦

zero dependencies

Pure bash. Requires only git, make, and less — tools already on every Linux build server.

Configure once. Build everywhere.

gbuild reads its Git server URL, credentials, and defaults from ~/.gconfig — an INI-style config file managed by the companion gconfig tool. No more hardcoded values or repeated flags.

~/.gconfig
# ~/.gconfig — managed by gconfig [git] GIT_URL = http://localhost:3000 GIT_USER = jokerz [auth] # token-based or password-based, leave other blank GIT_TOKEN = GIT_PASSWORD = [build] DEFAULT_TARGET = CLONE_DIR = ~/projects [log] LOG_ENABLED = true LOG_DIR = ~/.local/log/gbuild
gconfig commands
command description
gconfig init Create ~/.gconfig with defaults if it doesn't exist
gconfig init --force Overwrite config, backing up the old file first
gconfig show Print current config values (auth fields masked)
gconfig help Print usage information

quick setup
# Install gconfig and initialise $ sudo dpkg -i gconfig_1.0.0_all.deb # ~/.gconfig is created automatically on install # Edit your values $ $EDITOR ~/.gconfig # Verify $ gconfig show

One command. Full control.


flag value description
--url <url> Override the Gitea base URL. default: value from ~/.gconfig
--user <name> Override the Gitea username. default: value from ~/.gconfig
--target <target> Run a specific make target, skipping the interactive picker. default: interactive
--logs Open the interactive log browser (TUI).
-h, --help Print usage and exit.
examples
# Build with defaults $ gbuild myproject # Skip the target picker $ gbuild --target clean myproject # Different server and user $ gbuild --url http://10.0.0.5:3000 --user alice myproject # Browse past build logs $ gbuild --logs

Get started in three steps.

Debian / Ubuntu · x86_64 & arm64 · gbuild 1.0.0

01 wget https://spdlab.hu/gbuild/gbuild_1.0.0_all.deb
02 sudo dpkg -i gbuild_1.0.0_all.deb
03 gbuild --help


Manages ~/.gconfig — required for gbuild to know your Git server and credentials.

01 wget https://spdlab.hu/gbuild/gconfig_1.0.0_all.deb
02 sudo dpkg -i gconfig_1.0.0_all.deb
03 $EDITOR ~/.gconfig