replace just build orchestration with make
This commit is contained in:
parent
7182db56cf
commit
e854e91b7f
|
|
@ -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'
|
||||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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/` |
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
304
justfile
304
justfile
|
|
@ -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'
|
||||
81
kde/justfile
81
kde/justfile
|
|
@ -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 ==='
|
||||
Loading…
Reference in New Issue