ollie/justfile

157 lines
5.2 KiB
Makefile

# Ollie monorepo build system
#
# Two paths:
# just (default) 9P frontend: core, 9p, acme, httpgw, webui + install
# just dbus D-Bus frontend: core, dbus (ollied), kde, httpgw, webui + install
#
# Build and install are separate phases. No sudo.
set dotenv-load := false
home := env_var('HOME')
cfg := home / ".config/ollie"
bin := home / "bin"
# === Default (9P) path ===
default: build-9p install-9p
# === D-Bus path ===
dbus: build-dbus install-dbus
# === Build targets ===
build-9p: core ninep acme httpgw webui
build-dbus: core dbus-bin kde httpgw webui
core:
@echo === Building ollie-core ===
cd core && go build ./...
ninep:
@echo === Building ollie-9p ===
cd 9p && go build -buildvcs=false -o {{bin}}/olliesrv .
cd 9p && go build -buildvcs=false -o {{bin}}/ollie-9p-mount ./cmd/ollie-9p-mount/
dbus-bin:
@echo === Building ollie-dbus (ollied) ===
cd dbus && go build -o ollied .
acme:
@echo === Building ollie-acme ===
cd acme && go build -o {{bin}}/Ollie .
cp acme/scripts/Kmpl {{bin}}/Kmpl
cp acme/scripts/Oi {{bin}}/Oi
chmod 755 {{bin}}/Kmpl {{bin}}/Oi
httpgw:
@echo === Building ollie-httpgw ===
cd httpgw && go build -o {{bin}}/ollie-httpgw .
webui:
@echo === Building ollie-webui ===
cd webui && npm run build
kde:
@echo === Building kde tools ===
cd kde && cmake -B build-cmake -S .
cd kde && cmake --build build-cmake -j$(nproc)
# === Install targets ===
install-9p: install-data install-scripts install-contrib
cp -f prompts/SYSTEM_PROMPT-9p.md {{cfg}}/prompts/SYSTEM_PROMPT.md
@echo === Install complete \(9P\) ===
install-dbus: install-data install-scripts install-contrib
cp -f prompts/SYSTEM_PROMPT-dbus.md {{cfg}}/prompts/SYSTEM_PROMPT.md
@echo === Install complete \(D-Bus\) ===
install-data:
@echo === Installing data ===
mkdir -p {{cfg}}/agents {{cfg}}/sandbox {{cfg}}/prompts {{cfg}}/skills {{cfg}}/tools
cp -rf agents/* {{cfg}}/agents/
cp -rf prompts/* {{cfg}}/prompts/
cp -rf sandbox/* {{cfg}}/sandbox/
cp -rf skills/* {{cfg}}/skills/
cp -rf tools/* {{cfg}}/tools/
cp doc/help.md {{cfg}}/help.md
install-scripts:
@echo === Installing scripts ===
mkdir -p {{cfg}}/scripts/s {{cfg}}/scripts/u {{cfg}}/scripts/x
cp -f scripts/s/sh {{cfg}}/scripts/s/sh
cp -f scripts/s/ls {{cfg}}/scripts/s/ls
cp -f scripts/s/kill {{cfg}}/scripts/s/kill
cp -f scripts/s/b {{cfg}}/scripts/s/b
cp -f scripts/s/bfg {{cfg}}/scripts/s/bfg
cp -f scripts/s/bbg {{cfg}}/scripts/s/bbg
cp -f scripts/s/cleanup {{cfg}}/scripts/s/cleanup
cp -f scripts/u/optimize {{cfg}}/scripts/u/optimize
cp -f scripts/u/complete {{cfg}}/scripts/u/complete
cp -f scripts/u/cascade {{cfg}}/scripts/u/cascade
cp -f scripts/x/elevate {{cfg}}/scripts/x/elevate
cp -f scripts/x/elevate-adapter-superpowerd {{cfg}}/scripts/x/elevate-adapter-superpowerd
cp -f scripts/x/elevate-adapter-start {{cfg}}/scripts/x/elevate-adapter-start
cp -f scripts/x/bd {{cfg}}/scripts/x/bd
cp -f scripts/x/prime {{cfg}}/scripts/x/prime
cp -f scripts/x/freeloader {{cfg}}/scripts/x/freeloader
chmod 755 \
{{cfg}}/scripts/s/b \
{{cfg}}/scripts/s/bfg \
{{cfg}}/scripts/s/bbg \
{{cfg}}/scripts/s/cleanup \
{{cfg}}/scripts/u/optimize \
{{cfg}}/scripts/u/complete \
{{cfg}}/scripts/u/cascade \
{{cfg}}/scripts/x/elevate \
{{cfg}}/scripts/x/elevate-adapter-superpowerd \
{{cfg}}/scripts/x/elevate-adapter-start \
{{cfg}}/scripts/x/bd \
{{cfg}}/scripts/x/prime \
{{cfg}}/scripts/x/freeloader
install-contrib:
@echo === Installing contrib scripts ===
mkdir -p {{bin}}
cp -f contrib/ollie-remount {{bin}}/ollie-remount
cp -f scripts/s/ollie-watchdog {{bin}}/ollie-watchdog
chmod 755 {{bin}}/ollie-remount {{bin}}/ollie-watchdog
# === Uninstall ===
uninstall:
@echo === Uninstalling ollie ===
rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount
rm -f {{bin}}/ollie-httpgw
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi
rm -f {{bin}}/ollie-remount {{bin}}/ollie-watchdog
rm -rf {{cfg}}
cd dbus && make uninstall 2>/dev/null || true
cd kde && make uninstall 2>/dev/null || true
@echo === Uninstall complete ===
# === Clean ===
clean:
cd core && go clean ./... 2>/dev/null || true
rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount
rm -f {{bin}}/ollie-httpgw
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi
cd dbus && rm -f ollied 2>/dev/null || true
cd kde && rm -rf build-cmake 2>/dev/null || true
# === Help ===
help:
@echo 'Ollie monorepo build targets:'
@echo ' just Build 9P path + install (default)'
@echo ' just dbus Build D-Bus path + install'
@echo ' just build-9p Build only (9P): core, 9p, acme, httpgw, webui'
@echo ' just build-dbus Build only (D-Bus): core, ollied, kde, httpgw, webui'
@echo ' just install-9p Install with 9P prompt'
@echo ' just install-dbus Install with D-Bus prompt'
@echo ' just uninstall Remove all installed files'
@echo ' just clean Clean build artifacts'
@echo ''
@echo 'Individual: just core | 9p | dbus-bin | acme | httpgw | webui | kde'