From e854e91b7f12b8303e79c7ac010226fb09a76ad6 Mon Sep 17 00:00:00 2001 From: Ollie Agent Date: Mon, 17 Aug 2026 00:01:27 +0200 Subject: [PATCH] replace just build orchestration with make --- Makefile | 101 +++++++++++ README.md | 6 +- data/agents/README.md | 2 +- doc/architecture-kde.md | 13 +- doc/architecture-prompting.md | 2 +- doc/architecture-virtfs.md | 6 +- doc/usage.md | 2 +- justfile | 304 ---------------------------------- kde/justfile | 81 --------- 9 files changed, 119 insertions(+), 398 deletions(-) create mode 100644 Makefile delete mode 100644 justfile delete mode 100644 kde/justfile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5dc17da --- /dev/null +++ b/Makefile @@ -0,0 +1,101 @@ +.DEFAULT_GOAL := all + +PREFIX ?= $(HOME)/.local +BINDIR := $(PREFIX)/bin +LIBDIR := $(PREFIX)/lib +INCDIR := $(PREFIX)/include +CONFIG_DIR ?= $(HOME)/.config/ollie +DATA_DIR ?= $(HOME)/.local/share/ollie +JOBS ?= $(shell nproc 2>/dev/null || echo 2) + +.PHONY: all build build-kf5 core gofmt ninep client tools kde kde-kf5 \ + install install-kf5 install-data test test-core test-9p clean help + +all: build install + +build: core ninep client tools kde +build-kf5: core ninep client kde-kf5 + +core: + go build ./... + +gofmt: + gofmt -w $$(find . -name '*.go' -not -path './vendor/*') + +ninep: + mkdir -p $(BINDIR) + go build -o $(BINDIR)/olliesrv ./cmd/olliesrv/ + go build -o $(BINDIR)/ollie-9p ./cmd/ollie-9p/ + +client: + mkdir -p $(LIBDIR) $(INCDIR) + cd kde/lib9p && go build -buildmode=c-shared -o libollie9p.so + install -m755 kde/lib9p/libollie9p.so $(LIBDIR)/libollie9p.so + install -m644 kde/lib9p/libollie9p.h $(INCDIR)/libollie9p.h + +tools: + mkdir -p $(CONFIG_DIR)/tools + go build -o $(CONFIG_DIR)/tools/toolsrv ./cmd/toolsrv/ + for d in tools/codeintel/cmd/* tools/filetools/cmd/* tools/lsp/cmd/* tools/web/cmd/*; do \ + name=$$(basename $$d); [ -f $$d/main.go ] || continue; \ + go build -o $(CONFIG_DIR)/tools/$$name ./$$d; \ + done + install -m644 data/tools/*.meta $(CONFIG_DIR)/tools/ + +kde: + cmake -S kde -B kde/build -DCMAKE_INSTALL_PREFIX=$(PREFIX) + cmake --build kde/build -j$(JOBS) + +kde-kf5: + cmake -S kde -B kde/build-kf5 -DOLLIE_KF5=ON -DCMAKE_INSTALL_PREFIX=$(PREFIX) + cmake --build kde/build-kf5 -j$(JOBS) + +install: build test install-data + cmake --install kde/build + install -Dm644 kde/gui/org.ollie.gui.desktop $(PREFIX)/share/applications/org.ollie.gui.desktop + install -Dm644 kde/gui/ollie.svg $(PREFIX)/share/icons/hicolor/scalable/apps/ollie.svg + install -Dm755 kde/dolphin/ollie-actions.desktop $(PREFIX)/share/kio/servicemenus/ollie-actions.desktop + install -Dm755 kde/dolphin/ollie-ask $(BINDIR)/ollie-ask + install -Dm755 kde/dolphin/ollie-session-here $(BINDIR)/ollie-session-here + +install-kf5: build-kf5 test install-data + cmake --install kde/build-kf5 + install -Dm644 kde/gui/org.ollie.gui.desktop $(PREFIX)/share/applications/org.ollie.gui.desktop + install -Dm644 kde/gui/ollie.svg $(PREFIX)/share/icons/hicolor/scalable/apps/ollie.svg + install -Dm755 kde/dolphin/ollie-actions-kf5.desktop $(PREFIX)/share/kio/servicemenus/ollie-actions.desktop + install -Dm755 kde/dolphin/ollie-ask $(BINDIR)/ollie-ask + install -Dm755 kde/dolphin/ollie-session-here $(BINDIR)/ollie-session-here + +install-data: + mkdir -p $(CONFIG_DIR)/agents $(CONFIG_DIR)/prompts $(CONFIG_DIR)/skills $(CONFIG_DIR)/tools + @test -f $(CONFIG_DIR)/backends.conf || install -Dm600 data/backends.conf $(CONFIG_DIR)/backends.conf + cp -a data/agents/. $(CONFIG_DIR)/agents/ + cp -a data/prompts/. $(CONFIG_DIR)/prompts/ + cp -a data/skills/. $(CONFIG_DIR)/skills/ + install -Dm644 cmd/toolsrv/internal/sandbox/sandbox.yaml $(CONFIG_DIR)/sandbox.yaml + install -Dm755 data/scripts/ollie-remount $(BINDIR)/ollie-remount + install -Dm755 data/scripts/logseq-cli $(BINDIR)/logseq-cli + install -Dm755 data/scripts/o $(BINDIR)/o + +# The GUI/KDE build is intentionally delegated to kde/CMakeLists.txt. It +# detects KF6 first and falls back to KF5; kde-kf5 forces the KF5 path. +test: test-core test-9p + +test-core: + go test ./cmd/olliesrv/... ./cmd/toolsrv/... ./log/... ./toolsrv/... ./util/... ./tools/codeintel/... + +test-9p: + go test ./cmd/ollie-9p/... ./kde/lib9p/... + +clean: + go clean ./... + rm -rf kde/build kde/build-kf5 + +help: + @echo 'make Build and install (automatic KF6/KF5 detection)' + @echo 'make build Build without installing' + @echo 'make kde Build KDE using automatic detection' + @echo 'make kde-kf5 Build KDE against KF5/Qt5' + @echo 'make test Run tests' + @echo 'make install Install the automatic-detection build' + @echo 'make clean Remove build artifacts' diff --git a/README.md b/README.md index ac3ab5a..1d0e0f1 100644 --- a/README.md +++ b/README.md @@ -69,5 +69,9 @@ See [`doc/architecture.md`](doc/architecture.md) for component boundaries and [` ## Build ```sh -just +make ``` + +The top-level Makefile builds the Go services and tools, then delegates KDE/Qt +compatibility to `kde/CMakeLists.txt`. CMake detects KF6 first and falls back +to KF5; use `make kde-kf5` to force the KF5/Qt5 build. diff --git a/data/agents/README.md b/data/agents/README.md index 62370db..03c69df 100644 --- a/data/agents/README.md +++ b/data/agents/README.md @@ -66,4 +66,4 @@ Files listed in `userPrompts` are resolved the same way as `prompt` (file paths 2. Adjust the `prompt` array to reference your prompt files in `data/prompts/`. 3. Set `autoLoad` to the tools this agent needs. 4. Set generation parameters as needed. -5. Run `just install-data` to install. +5. Run `make install-data` to install. diff --git a/doc/architecture-kde.md b/doc/architecture-kde.md index ac89fa8..0d0e638 100644 --- a/doc/architecture-kde.md +++ b/doc/architecture-kde.md @@ -32,20 +32,21 @@ The application communicates through 9P. It does not need a running desktop daem Prerequisites are a running Ollie installation, a C++17 compiler, CMake, Qt, KDE Frameworks, and the native 9P client library installed under `~/.local`. -Build the current KF6 integration from the repository root: +Build the KDE integration from the repository root: ```sh -just kde +make kde ``` Build and install it: ```sh -just kde -just install-kde +make ``` -The KDE `justfile` also provides `kde-kf5` and `install-kde-kf5` for Qt5/KF5 systems. CMake auto-detects KF6 unless `-DOLLIE_KF5=ON` is supplied. +For KF5/Qt5, use `make kde-kf5` or `make install-kf5`. + +The KDE build is delegated to `kde/CMakeLists.txt`. CMake auto-detects KF6 unless `-DOLLIE_KF5=ON` is supplied. Use `make kde-kf5` to force Qt5/KF5. Install targets include: @@ -72,7 +73,7 @@ The GUI uses native client code for streaming and session operations. Other inte | Area | Location | |---|---| -| Build and install | `kde/CMakeLists.txt`, `kde/justfile` | +| Build and install | `Makefile`, `kde/CMakeLists.txt` | | Qt/QML GUI | `kde/gui/` | | Native 9P client | `kde/lib9p/`, `kde/gui/lib9pclient.*` | | KRunner | `kde/krunner/` | diff --git a/doc/architecture-prompting.md b/doc/architecture-prompting.md index ba534e2..b8dd065 100644 --- a/doc/architecture-prompting.md +++ b/doc/architecture-prompting.md @@ -42,7 +42,7 @@ Agent JSON is loaded from the installed agent configuration directory. The relev `prompt` and `userPrompts` accept either a single path or an array. Environment variables are expanded in paths and file contents. Missing files are retried with a `.md` suffix and then skipped. A leading `!` remains supported for legacy command entries; the command runs with the agent working directory and its stdout becomes prompt text. -The default configuration uses installed prompt files under `$XDG_CONFIG_HOME/ollie/prompts`. Runtime data is installed by `just install-data`; source prompt templates live under `data/prompts`. +The default configuration uses installed prompt files under `$XDG_CONFIG_HOME/ollie/prompts`. Runtime data is installed by `make install-data`; source prompt templates live under `data/prompts`. ## Tool rendering diff --git a/doc/architecture-virtfs.md b/doc/architecture-virtfs.md index 85a87d0..2bb55bb 100644 --- a/doc/architecture-virtfs.md +++ b/doc/architecture-virtfs.md @@ -2,7 +2,7 @@ `virtfs` is the embedded Go library that defines Ollie’s synthetic filesystem. It separates namespace declaration from protocol transport: `cmd/olliesrv/internal/fs/spec.go` declares the Ollie namespace, `virtfs.BuildTree` materializes it as an in-memory tree, and the 9P server exposes that tree to clients. -The library is installed as part of the normal Go build. It is not a separately installed runtime service or configuration directory. The repository package at `virtfs/` is compiled into `olliesrv` by the `ninep` and `core` build targets in `justfile`. +The library is installed as part of the normal Go build. It is not a separately installed runtime service or configuration directory. The repository package at `virtfs/` is compiled into `olliesrv` by the `ninep` and `core` build targets in `Makefile`. ## Design @@ -113,8 +113,8 @@ virtfs.Each("{aname}", func() ([]virtfs.FsNodeDecl, error) { The repository build uses: ```sh -just build # includes core and the 9P server -just install # installs the resulting runtime and data files +make build # includes core and the 9P server +make install # installs the resulting runtime and data files ``` The install phase copies runtime data under `~/.config/ollie` and `~/.local/share/ollie`; it does not copy the `virtfs` package or install a separate virtfs directory. diff --git a/doc/usage.md b/doc/usage.md index 7558868..2a26b5c 100644 --- a/doc/usage.md +++ b/doc/usage.md @@ -32,7 +32,7 @@ Valid levels: `debug`, `info`, `warn`, `error`. ## `o` — Terminal CLI `o` is a multi-call shell script that wraps the 9P namespace into a human-friendly interface. -Installed to `~/.local/bin/o` by `just install-data`. +Installed to `~/.local/bin/o` by `make install-data`. ### Quick start diff --git a/justfile b/justfile deleted file mode 100644 index 95d5b38..0000000 --- a/justfile +++ /dev/null @@ -1,304 +0,0 @@ -# Ollie monorepo build system -# -# Two variants: -# just Default (KF6): core, 9p, kde -# just kf5 KF5/Qt5 variant (Plasma 5.27) -# -# Build and install are separate phases. No sudo. - -set dotenv-load := false - -home := env_var('HOME') -cfg := home / ".config/ollie" -data := home / ".local/share/ollie" -bin := home / ".local/bin" -lib := home / ".local/lib" -inc := home / ".local/include" - -# === Default (KF6) path === -default: build install - -# === KF5 variant === -kf5: build-kf5 install-kf5 - -# === Build targets === - -build: core ninep client toolsrv tools-web code-tools file-tools lsp-tools kde - -build-kf5: core ninep client toolsrv file-tools kde-kf5 - -core: - @echo === Building ollie-core === - go build ./... - -ninep: - @echo === Building ollie-9p === - go build -o {{bin}}/olliesrv ./cmd/olliesrv/ - go build -o {{bin}}/ollie-9p ./cmd/ollie-9p/ - -client: - @echo === Building native libollie9p === - cd kde/lib9p && go build -buildmode=c-shared -o libollie9p.so - mkdir -p {{lib}} {{inc}} - install -m755 kde/lib9p/libollie9p.so {{lib}}/libollie9p.so - install -m644 kde/lib9p/libollie9p.h {{inc}}/libollie9p.h - -lsp-tools: - @echo === Building LSP tools === - mkdir -p {{cfg}}/tools - rm -f {{cfg}}/tools/lsp_definition {{cfg}}/tools/lsp_references {{cfg}}/tools/lsp_hover {{cfg}}/tools/lsp_rename {{cfg}}/tools/lsp_symbols {{cfg}}/tools/lsp_completion {{cfg}}/tools/lsp_diagnostics - go build -o {{cfg}}/tools/lsp_definition ./tools/lsp/cmd/lsp_definition/ - install -m644 ./tools/lsp/cmd/lsp_definition/lsp_definition.meta {{cfg}}/tools/lsp_definition.meta - go build -o {{cfg}}/tools/lsp_references ./tools/lsp/cmd/lsp_references/ - install -m644 ./tools/lsp/cmd/lsp_references/lsp_references.meta {{cfg}}/tools/lsp_references.meta - go build -o {{cfg}}/tools/lsp_hover ./tools/lsp/cmd/lsp_hover/ - install -m644 ./tools/lsp/cmd/lsp_hover/lsp_hover.meta {{cfg}}/tools/lsp_hover.meta - go build -o {{cfg}}/tools/lsp_rename ./tools/lsp/cmd/lsp_rename/ - install -m644 ./tools/lsp/cmd/lsp_rename/lsp_rename.meta {{cfg}}/tools/lsp_rename.meta - go build -o {{cfg}}/tools/lsp_symbols ./tools/lsp/cmd/lsp_symbols/ - install -m644 ./tools/lsp/cmd/lsp_symbols/lsp_symbols.meta {{cfg}}/tools/lsp_symbols.meta - go build -o {{cfg}}/tools/lsp_completion ./tools/lsp/cmd/lsp_completion/ - install -m644 ./tools/lsp/cmd/lsp_completion/lsp_completion.meta {{cfg}}/tools/lsp_completion.meta - go build -o {{cfg}}/tools/lsp_diagnostics ./tools/lsp/cmd/lsp_diagnostics/ - install -m644 ./tools/lsp/cmd/lsp_diagnostics/lsp_diagnostics.meta {{cfg}}/tools/lsp_diagnostics.meta - -toolsrv: - @echo === Building toolsrv === - go build -buildvcs=false -o {{bin}}/toolsrv ./cmd/toolsrv/ - -code-tools: - @echo === Building Tree-sitter code tools === - mkdir -p {{cfg}}/tools - go build -o {{cfg}}/tools/codebase_overview ./tools/codeintel/cmd/codebase_overview/ - install -m644 ./data/tools/codebase_overview.meta {{cfg}}/tools/codebase_overview.meta - go build -o {{cfg}}/tools/code_symbols ./tools/codeintel/cmd/code_symbols/ - install -m644 ./data/tools/code_symbols.meta {{cfg}}/tools/code_symbols.meta - go build -o {{cfg}}/tools/code_outline ./tools/codeintel/cmd/code_outline/ - install -m644 ./data/tools/code_outline.meta {{cfg}}/tools/code_outline.meta - go build -o {{cfg}}/tools/code_query ./tools/codeintel/cmd/code_query/ - install -m644 ./data/tools/code_query.meta {{cfg}}/tools/code_query.meta - go build -o {{cfg}}/tools/code_rewrite ./tools/codeintel/cmd/code_rewrite/ - install -m644 ./data/tools/code_rewrite.meta {{cfg}}/tools/code_rewrite.meta - go build -o {{cfg}}/tools/code_dependencies ./tools/codeintel/cmd/code_dependencies/ - install -m644 ./data/tools/code_dependencies.meta {{cfg}}/tools/code_dependencies.meta - -file-tools: - @echo === Building Go file tools === - mkdir -p {{cfg}}/tools - rm -f {{cfg}}/tools/file_read {{cfg}}/tools/file_write {{cfg}}/tools/file_edit {{cfg}}/tools/file_glob {{cfg}}/tools/file_grep - go build -o {{cfg}}/tools/file_read ./tools/filetools/cmd/file_read/ - go build -o {{cfg}}/tools/file_write ./tools/filetools/cmd/file_write/ - go build -o {{cfg}}/tools/file_edit ./tools/filetools/cmd/file_edit/ - go build -o {{cfg}}/tools/file_glob ./tools/filetools/cmd/file_glob/ - go build -o {{cfg}}/tools/file_grep ./tools/filetools/cmd/file_grep/ - -tools-web: - @echo === Building web tools === - mkdir -p {{cfg}}/tools - go build -o {{cfg}}/tools/web_fetch ./tools/web/cmd/web_fetch/ - install -m644 ./data/tools/web_fetch.meta {{cfg}}/tools/web_fetch.meta - -kde: - @echo === Building ollie-kde === - just -f kde/justfile kde - -kde-kf5: - @echo '=== Building ollie-kde (KF5) ===' - just -f kde/justfile kde-kf5 - -install: test install-data migrate-bin - just -f kde/justfile install-kde - @echo === Install complete === - @echo 'Restart Plasma to pick up KDE plugins.' - -install-kf5: test install-data migrate-bin - just -f kde/justfile install-kde-kf5 - @echo '=== Install complete (KF5) ===' - @echo 'Restart Plasma to pick up KDE plugins.' - -# Remove stale binaries from ~/bin left over from the pre-~/.local/bin era. -migrate-bin: - #!/usr/bin/env sh - old="$HOME/bin" - for f in olliesrv ollie-9p toolsrv ollie-gui ollie-remount logseq-cli o; do - if [ -f "$old/$f" ]; then - echo " removing stale $old/$f" - rm -f "$old/$f" - fi - done - -install-data: - @echo === Installing data === - # Backend config (only install template if user hasn't created one yet) - @test -f {{cfg}}/backends.conf || install -m600 data/backends.conf {{cfg}}/backends.conf - # Agents - mkdir -p {{cfg}}/agents - install -m644 data/agents/copilot.json {{cfg}}/agents/copilot.json - install -m644 data/agents/default.json {{cfg}}/agents/default.json - install -m644 data/agents/explorer.json {{cfg}}/agents/explorer.json - install -m644 data/agents/librarian.json {{cfg}}/agents/librarian.json - install -m644 data/agents/navigator.json {{cfg}}/agents/navigator.json - install -m644 data/agents/driver.json {{cfg}}/agents/driver.json - install -m644 data/agents/README.md {{cfg}}/agents/README.md - install -m644 data/agents/taskmanager.json {{cfg}}/agents/taskmanager.json - install -m644 data/agents/theo.json {{cfg}}/agents/theo.json - install -m644 data/agents/observer.json {{cfg}}/agents/observer.json - # Prompts - mkdir -p {{cfg}}/prompts {{cfg}}/optmem - install -m755 third_party/optmem/memo {{cfg}}/optmem/memo - MEMORY_DIR={{data}}/optmem {{cfg}}/optmem/memo init >/dev/null - install -m644 data/prompts/agent-coding.md {{cfg}}/prompts/agent-coding.md - install -m644 data/prompts/agent-copilot.md {{cfg}}/prompts/agent-copilot.md - install -m644 data/prompts/agent-explorer.md {{cfg}}/prompts/agent-explorer.md - install -m644 data/prompts/agent-librarian.md {{cfg}}/prompts/agent-librarian.md - install -m644 data/prompts/agent-navigator.md {{cfg}}/prompts/agent-navigator.md - install -m644 data/prompts/agent-taskmanager.md {{cfg}}/prompts/agent-taskmanager.md - install -m644 data/prompts/agent-theo.md {{cfg}}/prompts/agent-theo.md - install -m644 data/prompts/agent-observer.md {{cfg}}/prompts/agent-observer.md - install -m644 data/prompts/user-preferences.md {{cfg}}/prompts/user-preferences.md - # Sandbox - install -m644 cmd/toolsrv/internal/sandbox/sandbox.yaml {{cfg}}/sandbox.yaml - # Skills - mkdir -p {{cfg}}/skills/acme-api {{cfg}}/skills/agent-kb {{cfg}}/skills/duckduckgo-search {{cfg}}/skills/github-cli {{cfg}}/skills/rc-shell \ - {{cfg}}/skills/web-dev-browser-screencapture {{cfg}}/skills/write-skills - install -m644 data/skills/LICENSE.md {{cfg}}/skills/LICENSE.md - install -m644 data/skills/README.md {{cfg}}/skills/README.md - install -m644 data/skills/acme-api/SKILL.md {{cfg}}/skills/acme-api/SKILL.md - install -m644 data/skills/agent-kb/SKILL.md {{cfg}}/skills/agent-kb/SKILL.md - install -m644 data/skills/duckduckgo-search/SKILL.md {{cfg}}/skills/duckduckgo-search/SKILL.md - install -m644 data/skills/github-cli/SKILL.md {{cfg}}/skills/github-cli/SKILL.md - install -m644 data/skills/rc-shell/SKILL.md {{cfg}}/skills/rc-shell/SKILL.md - install -m644 data/skills/web-dev-browser-screencapture/SKILL.md {{cfg}}/skills/web-dev-browser-screencapture/SKILL.md - install -m644 data/skills/write-skills/SKILL.md {{cfg}}/skills/write-skills/SKILL.md - # Tools (executables) - mkdir -p {{cfg}}/tools/_lib - install -m755 data/tools/browser_screencap {{cfg}}/tools/browser_screencap - install -m755 data/tools/reasoning_think {{cfg}}/tools/reasoning_think - install -m755 data/tools/shell {{cfg}}/tools/shell - # File tools are built by the file-tools target above. - install -m755 data/tools/gui_accessibility {{cfg}}/tools/gui_accessibility - install -m755 data/tools/gui_activities {{cfg}}/tools/gui_activities - install -m755 data/tools/gui_apps {{cfg}}/tools/gui_apps - install -m755 data/tools/gui_brightness {{cfg}}/tools/gui_brightness - install -m755 data/tools/gui_clipboard {{cfg}}/tools/gui_clipboard - install -m755 data/tools/gui_files {{cfg}}/tools/gui_files - install -m755 data/tools/gui_input {{cfg}}/tools/gui_input - install -m755 data/tools/gui_media {{cfg}}/tools/gui_media - install -m755 data/tools/gui_notify {{cfg}}/tools/gui_notify - install -m755 data/tools/gui_screenshot {{cfg}}/tools/gui_screenshot - install -m755 data/tools/gui_shortcuts {{cfg}}/tools/gui_shortcuts - install -m755 data/tools/gui_windows {{cfg}}/tools/gui_windows - install -m755 data/tools/image_read {{cfg}}/tools/image_read - rm -f {{cfg}}/tools/memory_recall {{cfg}}/tools/memory_remember - install -m755 data/tools/subagent_spawn {{cfg}}/tools/subagent_spawn - install -m755 data/tools/skill_list {{cfg}}/tools/skill_list - install -m755 data/tools/skill_load {{cfg}}/tools/skill_load - install -m755 data/tools/system_logs_dmesg {{cfg}}/tools/system_logs_dmesg - install -m755 data/tools/system_logs_journald {{cfg}}/tools/system_logs_journald - # Tool metadata (.meta sidecar files) - for f in data/tools/*.meta; do install -m644 "$f" {{cfg}}/tools/"$(basename $f)"; done - # Tools (library modules) - install -m644 data/tools/_lib/__init__.py {{cfg}}/tools/_lib/__init__.py - install -m644 data/tools/_lib/args.py {{cfg}}/tools/_lib/args.py - install -m755 data/tools/_lib/args.sh {{cfg}}/tools/_lib/args.sh - # Scripts (ollie-remount, logseq-cli, o) - mkdir -p {{bin}} - install -m755 data/scripts/ollie-remount {{bin}}/ollie-remount - install -m755 data/scripts/logseq-cli {{bin}}/logseq-cli - install -m755 data/scripts/o {{bin}}/o - # Acme scripts - install -m755 data/scripts/acme/acme-ollie-ensure {{bin}}/acme-ollie-ensure - install -m755 data/scripts/acme/OllieHere {{bin}}/OllieHere - install -m755 data/scripts/acme/AskFile {{bin}}/AskFile - install -m755 data/scripts/acme/Explain {{bin}}/Explain - install -m755 data/scripts/acme/Document {{bin}}/Document - install -m755 data/scripts/acme/Fix {{bin}}/Fix - install -m755 data/scripts/acme/Refactor {{bin}}/Refactor - install -m755 data/scripts/acme/AddTests {{bin}}/AddTests - install -m755 data/scripts/acme/SendVerbatim {{bin}}/SendVerbatim - -install-autostart: - @echo === Installing autostart files === - mkdir -p ~/.config/autostart - install -m644 data/services/xdg-autostart/org.ollie.olliesrv.desktop ~/.config/autostart/ - -install-systemd: - @echo === Installing systemd service === - mkdir -p ~/.config/systemd/user - install -m644 data/services/systemd/ollie.service ~/.config/systemd/user/ - -# === Uninstall === - -uninstall: - @echo === Uninstalling ollie === - rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo - rm -f {{bin}}/ollie-remount {{bin}}/o - rm -f {{bin}}/prompt {{bin}}/ollieread {{bin}}/sendctl {{bin}}/ollie-ls - rm -f {{bin}}/AskFile {{bin}}/OllieHere {{bin}}/Explain {{bin}}/Document {{bin}}/Fix {{bin}}/Refactor {{bin}}/AddTests {{bin}}/SendVerbatim {{bin}}/acme-ollie-ensure - rm -rf {{cfg}} - # Service files - rm -f ~/.config/systemd/user/ollie.service - rm -f ~/.config/autostart/org.ollie.olliesrv.desktop - # KDE (KF6) - just -f kde/justfile uninstall - # Plasma env - rm -f ~/.config/plasma-workspace/env/99-ollie.sh - @echo === Uninstall complete === - -uninstall-kf5: - @echo '=== Uninstalling ollie (KF5) ===' - rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo - rm -f {{bin}}/ollie-remount {{bin}}/o - rm -f {{bin}}/prompt {{bin}}/ollieread {{bin}}/sendctl {{bin}}/ollie-ls - rm -f {{bin}}/AskFile {{bin}}/OllieHere {{bin}}/Explain {{bin}}/Document {{bin}}/Fix {{bin}}/Refactor {{bin}}/AddTests {{bin}}/SendVerbatim {{bin}}/acme-ollie-ensure - rm -rf {{cfg}} - # Service files - rm -f ~/.config/systemd/user/ollie.service - rm -f ~/.config/autostart/org.ollie.olliesrv.desktop - # KDE (KF5) - just -f kde/justfile uninstall-kf5 - # Plasma env - rm -f ~/.config/plasma-workspace/env/99-ollie.sh - @echo '=== Uninstall complete (KF5) ===' - -# === Test targets === - -test: test-core test-9p - -test-core: - @echo === Testing ollie-core === - go test ./cmd/olliesrv/... ./cmd/toolsrv/... ./log/... ./toolsrv/... ./util/... - -test-9p: - @echo === Testing ollie-9p === - go test ./cmd/ollie-9p/... ./kde/lib9p/... - -test-remote: - @echo === Testing toolsrv === - go build ./cmd/toolsrv/... - -# === Clean === - -clean: - go clean ./cmd/... 2>/dev/null || true - rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo - just -f kde/justfile clean - -# === Help === - -help: - @echo 'Ollie monorepo build targets:' - @echo ' just Build + install (default, KF6)' - @echo ' just kf5 Build + install (KF5/Qt5, Plasma 5.27)' - @echo ' just build Build only (KF6): core, 9p, client, kde' - @echo ' just build-kf5 Build only (KF5): core, 9p, client, kde-kf5' - @echo ' just install Install (KF6)' - @echo ' just install-kf5 Install (KF5)' - @echo ' just test Run all tests (core + 9p)' - @echo ' just test-core Run core tests' - @echo ' just test-9p Run 9p tests' - @echo ' just uninstall Remove all installed files (KF6)' - @echo ' just uninstall-kf5 Remove all installed files (KF5)' - @echo ' just clean Clean build artifacts' - @echo '' - @echo 'Individual: just core | ninep | client | kde | kde-kf5 | lsp-tools' diff --git a/kde/justfile b/kde/justfile deleted file mode 100644 index 8c4f7db..0000000 --- a/kde/justfile +++ /dev/null @@ -1,81 +0,0 @@ -# Ollie KDE integration build system -home := env_var('HOME') -bin := home / '.local/bin' - -kde: - @echo '=== Building ollie-kde (KF6) ===' - cmake -B build-cmake -S . -DCMAKE_INSTALL_PREFIX=~/.local - cmake --build build-cmake -j$(nproc) - -kde-kf5: - @echo '=== Building ollie-kde (KF5) ===' - cmake -B build-kf5 -S . -DOLLIE_KF5=ON -DCMAKE_INSTALL_PREFIX=~/.local - cmake --build build-kf5 -j$(nproc) - -install-kde: - @echo '=== Installing ollie-kde (KF6) ===' - cmake --install build-cmake - mkdir -p ~/.local/share/applications - install -m644 gui/org.ollie.gui.desktop ~/.local/share/applications/ - mkdir -p ~/.local/share/icons/hicolor/scalable/apps - install -m644 gui/ollie.svg ~/.local/share/icons/hicolor/scalable/apps/ollie.svg - mkdir -p ~/.local/share/kio/servicemenus - install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/ - install -m755 dolphin/ollie-ask ~/.local/bin/ - install -m755 dolphin/ollie-session-here ~/.local/bin/ - mkdir -p ~/.config/plasma-workspace/env - install -m755 99-ollie.sh ~/.config/plasma-workspace/env/99-ollie.sh - kbuildsycoca6 --noincremental 2>/dev/null; true - kquitapp6 krunner 2>/dev/null; true - @echo '=== KDE install complete. Restart Plasma to pick up plugins. ===' - -install-kde-kf5: - @echo '=== Installing ollie-kde (KF5) ===' - cmake --install build-kf5 - mkdir -p ~/.local/share/applications - install -m644 gui/org.ollie.gui.desktop ~/.local/share/applications/ - mkdir -p ~/.local/share/icons/hicolor/scalable/apps - install -m644 gui/ollie.svg ~/.local/share/icons/hicolor/scalable/apps/ollie.svg - mkdir -p ~/.local/share/kio/servicemenus - install -m755 dolphin/ollie-actions-kf5.desktop ~/.local/share/kio/servicemenus/ollie-actions.desktop - install -m755 dolphin/ollie-ask ~/.local/bin/ - install -m755 dolphin/ollie-session-here ~/.local/bin/ - mkdir -p ~/.config/plasma-workspace/env - install -m755 99-ollie-kf5.sh ~/.config/plasma-workspace/env/99-ollie-kf5.sh - kbuildsycoca5 --noincremental 2>/dev/null; true - kquitapp5 krunner 2>/dev/null; true - @echo '=== KDE KF5 install complete. Restart Plasma to pick up plugins. ===' - -clean: - rm -rf build-cmake build-kf5 - -uninstall: - @echo '=== Uninstalling ollie-kde (KF6) ===' - rm -f ~/.local/bin/ollie-gui - rm -f ~/.local/bin/ollie-ask ~/.local/bin/ollie-session-here - rm -f ~/.local/share/applications/org.ollie.gui.desktop - rm -f ~/.local/share/icons/hicolor/scalable/apps/ollie.svg - rm -f ~/.local/lib64/qt6/plugins/kf6/krunner/krunner_ollie.so - rm -f ~/.local/lib64/qt6/plugins/kf6/ktexteditor/ollie_kate.so - rm -f ~/.local/lib64/qt6/plugins/kf6/kio/kio_ollie.so - rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop - rm -f ~/.config/plasma-workspace/env/99-ollie.sh - kbuildsycoca6 --noincremental 2>/dev/null; true - kquitapp6 krunner 2>/dev/null; true - @echo '=== KDE uninstall complete ===' - -uninstall-kf5: - @echo '=== Uninstalling ollie-kde (KF5) ===' - rm -f ~/.local/bin/ollie-gui - rm -f ~/.local/bin/ollie-ask ~/.local/bin/ollie-session-here - rm -f ~/.local/share/applications/org.ollie.gui.desktop - rm -f ~/.local/share/icons/hicolor/scalable/apps/ollie.svg - rm -f ~/.local/lib/qt5/plugins/kf5/krunner/krunner_ollie.so - rm -f ~/.local/lib/qt5/plugins/ktexteditor/ollie_kate.so - rm -f ~/.local/lib/qt5/plugins/kf5/kio/kio_ollie.so - rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop - rm -f ~/.local/share/kservices5/ollie.protocol - rm -f ~/.config/plasma-workspace/env/99-ollie-kf5.sh - kbuildsycoca5 --noincremental 2>/dev/null; true - kquitapp5 krunner 2>/dev/null; true - @echo '=== KDE KF5 uninstall complete ===' \ No newline at end of file