combust/contrib at main · erikh/combust

Alpha software. Combust is under active development and may drift heavily over time. APIs, commands, and file formats are subject to change without notice.

Community-contributed helpers and integrations for Combust.

Contents

Integration Description
Makefile.tmux Run combust tasks in parallel tmux windows
taskwarrior-tui Drive combust from taskwarrior-tui shortcuts

Makefile.tmux

A Makefile for running combust tasks in parallel using tmux windows. Each target spawns a new tmux window per task, letting you monitor all running tasks from your tmux status bar.

Combust sets the xterm title during every command it runs. Tmux automatically picks this up as the window name, so each window in your session is labeled with what combust is doing (e.g. run:add-feature, merge:fix-bug).

Installation

Pass --tmux when initializing a project to copy Makefile.tmux into your repository automatically:

Or copy it manually:

cp contrib/Makefile.tmux ./Makefile.tmux

Targets

Target Description
run-all Spawn a window for every pending task and run combust run
review-all Spawn a window for every review-state task and run combust review run
merge-all Spawn a window for every review/merge-state task and run combust merge run
test-all Spawn a window for every review-state task and run combust test

Usage

From inside a tmux session:

make -f Makefile.tmux run-all

taskwarrior-tui

Shortcut scripts that let you drive combust directly from taskwarrior-tui. Each script receives a task UUID from taskwarrior-tui, extracts the project and task name, then runs the corresponding combust command.

Script Shortcut Description
combust-edit.py 1 Open the task spec in your editor and mark the combust UDA
combust-run.py 2 Run the task in a new tmux window
combust-status.py 3 Show combust status for the task's project

The scripts derive the combust task name from the first two words of the taskwarrior description (lowercased, joined with _), and locate the project directory at ~/src/combust/<project> using the taskwarrior project field.

Installation

Copy the scripts to your taskwarrior-tui shortcut directory:

mkdir -p ~/.config/taskwarrior-tui/shortcut-scripts
cp contrib/taskwarrior-tui/*.py ~/.config/taskwarrior-tui/shortcut-scripts/
chmod +x ~/.config/taskwarrior-tui/shortcut-scripts/*.py

Configuration

Add the following to your ~/.taskrc to register the shortcut scripts and set up the combust UDA:

# Combust UDA — tracks whether a task has a combust spec
uda.combust.type=string
uda.combust.label=Combust
uda.combust.values=true
uda.combust.default=
color.uda.combust.true=green

# Show the combust column in the next report
report.next.columns=id,start.age,entry.age,depends,priority,project,tags,recur,scheduled.countdown,due.relative,until.remaining,description,urgency,combust
report.next.labels=ID,Active,Age,Deps,P,Project,Tag,Recur,S,Due,Until,Description,Urg,Combust

# Register shortcut scripts (triggered by pressing 1, 2, 3 in taskwarrior-tui)
uda.taskwarrior-tui.shortcuts.1=~/.config/taskwarrior-tui/shortcut-scripts/combust-edit.py
uda.taskwarrior-tui.shortcuts.2=~/.config/taskwarrior-tui/shortcut-scripts/combust-run.py
uda.taskwarrior-tui.shortcuts.3=~/.config/taskwarrior-tui/shortcut-scripts/combust-status.py

With this in place, select a task in taskwarrior-tui and press 1 to edit its combust spec, 2 to run it, or 3 to check status.