aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-17 12:54:06 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-17 12:54:06 +0200
commit1884d56b0d399e9cdb80016a9c166b0120989933 (patch)
treed5ca16e23970791ea6b014a0d48541b444fdfd8b
parentca35dfc540bb86ebe193dd186ac6bb5276a93c2e (diff)
downloadkrino-1884d56b0d399e9cdb80016a9c166b0120989933.tar.gz
krino-1884d56b0d399e9cdb80016a9c166b0120989933.zip
the module path is git.labunix.xyz/krino
So that go install can find it. cgit serves no go-import meta tag, so nginx answers a ?go-get=1 request for /NAME with one pointing at https://git.labunix.xyz/NAME.git; the alternative was carrying a .git suffix through every import line forever. One sed over the imports, both go.mod files, and the dependency gate's whitelist. Nothing else depends on the path. go install works from the next tag, the first release whose go.mod carries it.
-rw-r--r--Makefile2
-rw-r--r--README.md7
-rw-r--r--cmd/krino/check.go4
-rw-r--r--cmd/krino/colour.go2
-rw-r--r--cmd/krino/colour_test.go6
-rw-r--r--cmd/krino/common.go6
-rw-r--r--cmd/krino/display.go2
-rw-r--r--cmd/krino/enum_test.go4
-rw-r--r--cmd/krino/exclude_test.go4
-rw-r--r--cmd/krino/explain.go6
-rw-r--r--cmd/krino/history_test.go4
-rw-r--r--cmd/krino/hostile_test.go2
-rw-r--r--cmd/krino/init.go4
-rw-r--r--cmd/krino/log.go4
-rw-r--r--cmd/krino/main_test.go2
-rw-r--r--cmd/krino/new.go4
-rw-r--r--cmd/krino/render.go6
-rw-r--r--cmd/krino/render_test.go6
-rw-r--r--cmd/krino/review.go4
-rw-r--r--cmd/krino/review_test.go6
-rw-r--r--cmd/krino/sort.go8
-rw-r--r--cmd/krino/sort_test.go4
-rw-r--r--cmd/krino/undo.go6
-rw-r--r--docs/design.md9
-rw-r--r--docs/gui-design.md10
-rw-r--r--go.mod2
-rw-r--r--gui/cmd/krino-gui/main.go4
-rw-r--r--gui/cmd/krino-gui/paths.go4
-rw-r--r--gui/go.mod6
-rw-r--r--gui/internal/model/about_test.go2
-rw-r--r--gui/internal/model/cond.go2
-rw-r--r--gui/internal/model/cond_test.go2
-rw-r--r--gui/internal/model/filter.go2
-rw-r--r--gui/internal/model/forms.go4
-rw-r--r--gui/internal/model/forms_test.go2
-rw-r--r--gui/internal/model/history.go6
-rw-r--r--gui/internal/model/history_test.go4
-rw-r--r--gui/internal/model/mainconf.go6
-rw-r--r--gui/internal/model/mainconf_test.go2
-rw-r--r--gui/internal/model/newdir.go4
-rw-r--r--gui/internal/model/newdir_test.go2
-rw-r--r--gui/internal/model/plan.go8
-rw-r--r--gui/internal/model/plan_test.go6
-rw-r--r--gui/internal/model/prefs.go2
-rw-r--r--gui/internal/model/preview.go2
-rw-r--r--gui/internal/model/rules.go8
-rw-r--r--gui/internal/model/rules_test.go2
-rw-r--r--gui/internal/model/settings.go2
-rw-r--r--gui/internal/model/testrule.go4
-rw-r--r--gui/internal/ui/forms.go6
-rw-r--r--gui/internal/ui/highlight.go2
-rw-r--r--gui/internal/ui/history.go4
-rw-r--r--gui/internal/ui/plan.go8
-rw-r--r--gui/internal/ui/rules.go4
-rw-r--r--gui/internal/ui/settings.go4
-rw-r--r--gui/internal/ui/window.go8
-rw-r--r--internal/apply/apply.go6
-rw-r--r--internal/apply/apply_test.go6
-rw-r--r--internal/apply/swap_test.go4
-rw-r--r--internal/cond/compile.go6
-rw-r--r--internal/cond/compile_test.go2
-rw-r--r--internal/cond/eval.go2
-rw-r--r--internal/cond/eval_test.go2
-rw-r--r--internal/cond/types.go2
-rw-r--r--internal/config/diag.go2
-rw-r--r--internal/config/dir.go4
-rw-r--r--internal/config/enum_test.go2
-rw-r--r--internal/config/load.go4
-rw-r--r--internal/config/main.go4
-rw-r--r--internal/config/print.go2
-rw-r--r--internal/config/print_test.go2
-rw-r--r--internal/config/settings.go2
-rw-r--r--internal/config/settings_test.go2
-rw-r--r--internal/config/skel.go4
-rw-r--r--internal/dup/dup.go2
-rw-r--r--internal/dup/dup_test.go2
-rw-r--r--internal/engine/apply.go12
-rw-r--r--internal/engine/apply_test.go8
-rw-r--r--internal/engine/cache_test.go4
-rw-r--r--internal/engine/engine.go10
-rw-r--r--internal/engine/engine_test.go4
-rw-r--r--internal/engine/enum_test.go4
-rw-r--r--internal/engine/exclude_test.go4
-rw-r--r--internal/engine/explain_test.go2
-rw-r--r--internal/engine/facts.go16
-rw-r--r--internal/engine/match.go14
-rw-r--r--internal/engine/nodelete_test.go4
-rw-r--r--internal/engine/plan.go2
-rw-r--r--internal/engine/plan_bench_test.go2
-rw-r--r--internal/engine/plan_test.go2
-rw-r--r--internal/engine/property_test.go4
-rw-r--r--internal/engine/roundtrip_test.go4
-rw-r--r--internal/engine/session.go6
-rw-r--r--internal/engine/undo_identity_test.go6
-rw-r--r--internal/plan/chain.go6
-rw-r--r--internal/plan/chain_test.go4
-rw-r--r--internal/plan/conflict.go4
-rw-r--r--internal/plan/conflict_test.go2
-rw-r--r--internal/plan/enum_test.go4
-rw-r--r--internal/plan/fuzz_test.go6
-rw-r--r--internal/plan/hostile_test.go2
-rw-r--r--internal/plan/json.go2
-rw-r--r--internal/plan/step.go4
-rw-r--r--internal/scan/scan.go2
-rw-r--r--internal/scan/scan_test.go2
-rw-r--r--internal/trash/trash.go2
106 files changed, 229 insertions, 227 deletions
diff --git a/Makefile b/Makefile
index e99e3cf..c40e662 100644
--- a/Makefile
+++ b/Makefile
@@ -76,7 +76,7 @@ ci: ## the gate: gofmt, vet, tests, dependencies, no personal data staged, man p
GOOS=freebsd CGO_ENABLED=0 go vet ./...
GOOS=openbsd CGO_ENABLED=0 go vet ./...
go test ./...
- @deps=$$(for os in linux freebsd openbsd; do GOOS=$$os CGO_ENABLED=0 go list -deps -test -f '{{with .Module}}{{.Path}}{{end}}' ./... || echo "go list failed for $$os"; done | sort -u | grep -vxE '(krino|golang\.org/x/(term|text|sys))?' || true); \
+ @deps=$$(for os in linux freebsd openbsd; do GOOS=$$os CGO_ENABLED=0 go list -deps -test -f '{{with .Module}}{{.Path}}{{end}}' ./... || echo "go list failed for $$os"; done | sort -u | grep -vxE '(git\.labunix\.xyz/krino|golang\.org/x/(term|text|sys))?' || true); \
test -z "$$deps" || { echo "unexpected dependencies:"; echo "$$deps"; exit 1; }
@scripts/leak-check
@scripts/man-lint
diff --git a/README.md b/README.md
index a5407f2..8b4b526 100644
--- a/README.md
+++ b/README.md
@@ -196,11 +196,12 @@ sudo apt install libgtk-4-dev libgirepository1.0-dev # Debian, Devuan
```
git clone https://git.labunix.xyz/krino.git
+go install git.labunix.xyz/krino/cmd/krino@latest # from 0.0.12 on
```
-The module path is `krino` rather than a URL, so `go install` does not work
-yet; build from a clone. The shape of `krino -n --json` is unstable before
-1.0 — don't script against it yet.
+`go install` needs a release carrying the module path below, so it works
+from the next tag; until then, build from a clone. The shape of
+`krino -n --json` is unstable before 1.0 — don't script against it yet.
Builds and tests are run on Linux, FreeBSD and OpenBSD. The release
tarballs hold the cross-compiled command line only; the window is built on
diff --git a/cmd/krino/check.go b/cmd/krino/check.go
index ec08672..a6c4410 100644
--- a/cmd/krino/check.go
+++ b/cmd/krino/check.go
@@ -6,8 +6,8 @@ import (
"fmt"
"io"
- "krino/internal/engine"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/xdg"
)
func init() { commands["check"] = cmdCheck }
diff --git a/cmd/krino/colour.go b/cmd/krino/colour.go
index 1b58171..2cc06b8 100644
--- a/cmd/krino/colour.go
+++ b/cmd/krino/colour.go
@@ -7,7 +7,7 @@ import (
"io"
"strings"
- "krino/internal/tui"
+ "git.labunix.xyz/krino/internal/tui"
)
// palette styles text for a terminal (spec §8.2) with SGR codes from the
diff --git a/cmd/krino/colour_test.go b/cmd/krino/colour_test.go
index 64dbb24..8adb4f7 100644
--- a/cmd/krino/colour_test.go
+++ b/cmd/krino/colour_test.go
@@ -7,9 +7,9 @@ import (
"strings"
"testing"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
func TestPaletteZeroValueIsPlain(t *testing.T) {
diff --git a/cmd/krino/common.go b/cmd/krino/common.go
index 5b6869a..77ff927 100644
--- a/cmd/krino/common.go
+++ b/cmd/krino/common.go
@@ -9,9 +9,9 @@ import (
"strings"
"time"
- "krino/internal/config"
- "krino/internal/engine"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/xdg"
)
// minAgeOverride parses --min-age: a duration in krino's own units (30s,
diff --git a/cmd/krino/display.go b/cmd/krino/display.go
index d468c6b..5bcfb5e 100644
--- a/cmd/krino/display.go
+++ b/cmd/krino/display.go
@@ -9,7 +9,7 @@ import (
"unicode"
"unicode/utf8"
- "krino/internal/cond"
+ "git.labunix.xyz/krino/internal/cond"
)
// display makes s safe to print to a terminal (spec §15.1). File names,
diff --git a/cmd/krino/enum_test.go b/cmd/krino/enum_test.go
index 144fec6..63a89a2 100644
--- a/cmd/krino/enum_test.go
+++ b/cmd/krino/enum_test.go
@@ -7,8 +7,8 @@ import (
"strings"
"testing"
- "krino/internal/enumtest"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/enumtest"
+ "git.labunix.xyz/krino/internal/scan"
)
// TestEverySkipReasonIsSummarised: every scan.Reason is counted in the
diff --git a/cmd/krino/exclude_test.go b/cmd/krino/exclude_test.go
index 2c77438..f2ab452 100644
--- a/cmd/krino/exclude_test.go
+++ b/cmd/krino/exclude_test.go
@@ -9,8 +9,8 @@ import (
"testing"
"time"
- "krino/internal/engine"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/scan"
)
// excludeFixture makes ~/dl with an old a.iso, an old keep.txt and a fresh
diff --git a/cmd/krino/explain.go b/cmd/krino/explain.go
index 09145b9..70d2c93 100644
--- a/cmd/krino/explain.go
+++ b/cmd/krino/explain.go
@@ -9,9 +9,9 @@ import (
"io"
"strings"
- "krino/internal/cond"
- "krino/internal/engine"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/xdg"
)
func init() { commands["explain"] = cmdExplain }
diff --git a/cmd/krino/history_test.go b/cmd/krino/history_test.go
index d85766f..ad7f6f6 100644
--- a/cmd/krino/history_test.go
+++ b/cmd/krino/history_test.go
@@ -12,8 +12,8 @@ import (
"testing"
"time"
- "krino/internal/engine"
- "krino/internal/journal"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/journal"
)
func TestLogListsRunsAndUndoReverses(t *testing.T) {
diff --git a/cmd/krino/hostile_test.go b/cmd/krino/hostile_test.go
index ad10ba8..d139b4c 100644
--- a/cmd/krino/hostile_test.go
+++ b/cmd/krino/hostile_test.go
@@ -11,7 +11,7 @@ import (
"testing"
"time"
- "krino/internal/journal"
+ "git.labunix.xyz/krino/internal/journal"
)
// hostileNames are file names a download can carry that try to take over
diff --git a/cmd/krino/init.go b/cmd/krino/init.go
index 6feb6d0..f5c8ed2 100644
--- a/cmd/krino/init.go
+++ b/cmd/krino/init.go
@@ -6,8 +6,8 @@ import (
"fmt"
"io"
- "krino/internal/config"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/xdg"
)
func init() { commands["init"] = cmdInit }
diff --git a/cmd/krino/log.go b/cmd/krino/log.go
index e3e9dd1..23852d7 100644
--- a/cmd/krino/log.go
+++ b/cmd/krino/log.go
@@ -9,8 +9,8 @@ import (
"os"
"strings"
- "krino/internal/engine"
- "krino/internal/journal"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/journal"
)
func init() { commands["log"] = cmdLog }
diff --git a/cmd/krino/main_test.go b/cmd/krino/main_test.go
index 6d1d30e..d9d6cfc 100644
--- a/cmd/krino/main_test.go
+++ b/cmd/krino/main_test.go
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
- "krino/internal/config"
+ "git.labunix.xyz/krino/internal/config"
)
// runCLI drives run() and returns its exit code and output.
diff --git a/cmd/krino/new.go b/cmd/krino/new.go
index 0390e82..2816045 100644
--- a/cmd/krino/new.go
+++ b/cmd/krino/new.go
@@ -6,8 +6,8 @@ import (
"fmt"
"io"
- "krino/internal/config"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/xdg"
)
func init() { commands["new"] = cmdNew }
diff --git a/cmd/krino/render.go b/cmd/krino/render.go
index ca7dad7..46b8fb0 100644
--- a/cmd/krino/render.go
+++ b/cmd/krino/render.go
@@ -12,9 +12,9 @@ import (
"golang.org/x/text/width"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// labelWidth is the column every label in a file's block is padded to, so
diff --git a/cmd/krino/render_test.go b/cmd/krino/render_test.go
index 7c2072e..e19be9e 100644
--- a/cmd/krino/render_test.go
+++ b/cmd/krino/render_test.go
@@ -11,9 +11,9 @@ import (
"time"
"unicode/utf8"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
// TestPrintPlan is the golden render test of spec §8.2. The DirPlan is
diff --git a/cmd/krino/review.go b/cmd/krino/review.go
index 671cbab..80efaef 100644
--- a/cmd/krino/review.go
+++ b/cmd/krino/review.go
@@ -7,8 +7,8 @@ import (
"io"
"os"
- "krino/internal/plan"
- "krino/internal/tui"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/tui"
)
// reviewDir drives spec §8.2/§8.3's interactive review over the real
diff --git a/cmd/krino/review_test.go b/cmd/krino/review_test.go
index 0731ba9..bd58dbc 100644
--- a/cmd/krino/review_test.go
+++ b/cmd/krino/review_test.go
@@ -11,9 +11,9 @@ import (
"testing"
"unicode/utf8"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
func chains(rels ...string) []plan.Chain {
diff --git a/cmd/krino/sort.go b/cmd/krino/sort.go
index 12812c7..35d8123 100644
--- a/cmd/krino/sort.go
+++ b/cmd/krino/sort.go
@@ -17,10 +17,10 @@ import (
"golang.org/x/term"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// stdin is os.Stdin, threaded through this seam rather than referenced
diff --git a/cmd/krino/sort_test.go b/cmd/krino/sort_test.go
index 4e68cb5..01e7500 100644
--- a/cmd/krino/sort_test.go
+++ b/cmd/krino/sort_test.go
@@ -9,8 +9,8 @@ import (
"testing"
"time"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
// TestRelWidthAndPadCellCountRunes: C4. relWidth and padCell must measure
diff --git a/cmd/krino/undo.go b/cmd/krino/undo.go
index 85b74b5..2d170a4 100644
--- a/cmd/krino/undo.go
+++ b/cmd/krino/undo.go
@@ -15,9 +15,9 @@ import (
"golang.org/x/term"
- "krino/internal/engine"
- "krino/internal/lock"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/lock"
+ "git.labunix.xyz/krino/internal/xdg"
)
func init() { commands["undo"] = cmdUndo }
diff --git a/docs/design.md b/docs/design.md
index a3356c7..3037308 100644
--- a/docs/design.md
+++ b/docs/design.md
@@ -984,10 +984,11 @@ keyword. Its defects shaped these decisions:
## 18. Settled before implementation
-1. **Hosting: local only for now.** The module path is `krino`. When a
- remote is chosen, `go mod edit -module <path>` and one `sed` over the
- `"krino/internal/...` imports rename it; nothing else depends on it.
- `go install ...@v0.0.1` works only after that.
+1. **Hosting: `git.labunix.xyz/krino`,** public over cgit and clonable
+ without an account. That is also the module path. cgit serves no
+ `go-import` meta tag, so nginx answers a `?go-get=1` request for
+ `/NAME` with one naming `https://git.labunix.xyz/NAME.git`; without it
+ `go install` would need the path to carry a `.git` suffix.
2. **License: GPL-3.0-or-later.** Full text in `LICENSE`; every Go file,
shell script and man page carries an
`SPDX-License-Identifier: GPL-3.0-or-later` line.
diff --git a/docs/gui-design.md b/docs/gui-design.md
index 602368f..dd65c95 100644
--- a/docs/gui-design.md
+++ b/docs/gui-design.md
@@ -18,11 +18,11 @@ same log, that `krino log` and `krino undo` see.
### 1.1 Where the code lives
-- A nested Go module `krino/gui` in `gui/`, with its own `go.mod`
- (`github.com/diamondburned/gotk4/pkg` v0.4.1, and `replace krino => ../`),
- building one binary, `krino-gui`. It imports `krino/internal/...`, which
- Go allows because the import path is under `krino` (verified with a probe
- module, 2026-09-15).
+- A nested Go module `git.labunix.xyz/krino/gui` in `gui/`, with its own
+ `go.mod` (`github.com/diamondburned/gotk4/pkg`, and a `replace` pointing
+ at `../`), building one binary, `krino-gui`. It imports
+ `git.labunix.xyz/krino/internal/...`, which Go allows because the import
+ path is under the parent module's.
- krino's own module, `make ci` and its dependency gate are unchanged:
`go list ./...` at the root does not include `gui/`.
- `make gui` builds `krino-gui` with `CGO_ENABLED=1`; `make gui-ci` runs
diff --git a/go.mod b/go.mod
index 11346c0..1808ea7 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module krino
+module git.labunix.xyz/krino
go 1.25.0
diff --git a/gui/cmd/krino-gui/main.go b/gui/cmd/krino-gui/main.go
index 25f4837..8440b63 100644
--- a/gui/cmd/krino-gui/main.go
+++ b/gui/cmd/krino-gui/main.go
@@ -12,8 +12,8 @@ import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/ui"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/gui/internal/ui"
+ "git.labunix.xyz/krino/internal/engine"
)
// version is stamped at build time, as krino's is.
diff --git a/gui/cmd/krino-gui/paths.go b/gui/cmd/krino-gui/paths.go
index 447fc15..9e078f2 100644
--- a/gui/cmd/krino-gui/paths.go
+++ b/gui/cmd/krino-gui/paths.go
@@ -7,8 +7,8 @@ import (
"os"
"path/filepath"
- "krino/internal/config"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/xdg"
)
// cacheDir is where every directory's keyword cache lives (spec §6.1), the
diff --git a/gui/go.mod b/gui/go.mod
index 418422e..67294af 100644
--- a/gui/go.mod
+++ b/gui/go.mod
@@ -1,4 +1,4 @@
-module krino/gui
+module git.labunix.xyz/krino/gui
go 1.25.0
@@ -13,8 +13,8 @@ require (
)
require (
+ git.labunix.xyz/krino v0.0.0
golang.org/x/sync v0.22.0 // indirect
- krino v0.0.0
)
-replace krino => ../
+replace git.labunix.xyz/krino => ../
diff --git a/gui/internal/model/about_test.go b/gui/internal/model/about_test.go
index 5bfd991..778a013 100644
--- a/gui/internal/model/about_test.go
+++ b/gui/internal/model/about_test.go
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
- "krino/gui/internal/model"
+ "git.labunix.xyz/krino/gui/internal/model"
)
// TestAboutSaysWhatItIs: the About block names the program, the version it
diff --git a/gui/internal/model/cond.go b/gui/internal/model/cond.go
index 04cc4d1..63c0c25 100644
--- a/gui/internal/model/cond.go
+++ b/gui/internal/model/cond.go
@@ -6,7 +6,7 @@ import (
"fmt"
"strings"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// CondOps are the forms that hold other conditions.
diff --git a/gui/internal/model/cond_test.go b/gui/internal/model/cond_test.go
index 7aa4772..a1edb57 100644
--- a/gui/internal/model/cond_test.go
+++ b/gui/internal/model/cond_test.go
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// parseOne reads one condition from text, for the tests below.
diff --git a/gui/internal/model/filter.go b/gui/internal/model/filter.go
index b9844cf..707c9a1 100644
--- a/gui/internal/model/filter.go
+++ b/gui/internal/model/filter.go
@@ -5,7 +5,7 @@ package model
import (
"strings"
- "krino/internal/norm"
+ "git.labunix.xyz/krino/internal/norm"
)
// FuzzyMatch reports whether every character of pattern appears in text in
diff --git a/gui/internal/model/forms.go b/gui/internal/model/forms.go
index 681c15c..f0a3983 100644
--- a/gui/internal/model/forms.go
+++ b/gui/internal/model/forms.go
@@ -6,8 +6,8 @@ import (
"fmt"
"strings"
- "krino/internal/config"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/sexp"
)
// FormKind is what an editable form is.
diff --git a/gui/internal/model/forms_test.go b/gui/internal/model/forms_test.go
index 2c23462..efbd662 100644
--- a/gui/internal/model/forms_test.go
+++ b/gui/internal/model/forms_test.go
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
- "krino/internal/config"
+ "git.labunix.xyz/krino/internal/config"
)
// formsFile is a directory file with comments in the places that matter:
diff --git a/gui/internal/model/history.go b/gui/internal/model/history.go
index 9ce854c..7c166bb 100644
--- a/gui/internal/model/history.go
+++ b/gui/internal/model/history.go
@@ -9,9 +9,9 @@ import (
"strings"
"time"
- "krino/internal/engine"
- "krino/internal/journal"
- "krino/internal/lock"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/lock"
)
// Run is one line of the History tab's run list: what a run did, and
diff --git a/gui/internal/model/history_test.go b/gui/internal/model/history_test.go
index a486c2e..fed7cc1 100644
--- a/gui/internal/model/history_test.go
+++ b/gui/internal/model/history_test.go
@@ -10,8 +10,8 @@ import (
"strings"
"testing"
- "krino/internal/engine"
- "krino/internal/lock"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/lock"
)
// applyOneRun sorts the sandbox directory and returns the run id it wrote,
diff --git a/gui/internal/model/mainconf.go b/gui/internal/model/mainconf.go
index 327451e..951718f 100644
--- a/gui/internal/model/mainconf.go
+++ b/gui/internal/model/mainconf.go
@@ -8,9 +8,9 @@ import (
"os"
"strings"
- "krino/internal/config"
- "krino/internal/engine"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/sexp"
)
// MainSettings are the settings krino.conf carries for every directory,
diff --git a/gui/internal/model/mainconf_test.go b/gui/internal/model/mainconf_test.go
index bae739a..c77591c 100644
--- a/gui/internal/model/mainconf_test.go
+++ b/gui/internal/model/mainconf_test.go
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/internal/engine"
)
// mainConf opens krino.conf over a sandbox whose main file holds text.
diff --git a/gui/internal/model/newdir.go b/gui/internal/model/newdir.go
index f65763c..ec0e4f6 100644
--- a/gui/internal/model/newdir.go
+++ b/gui/internal/model/newdir.go
@@ -3,8 +3,8 @@
package model
import (
- "krino/internal/config"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/engine"
)
// AddDirectory writes dirs/NAME.conf from the template with path filled in
diff --git a/gui/internal/model/newdir_test.go b/gui/internal/model/newdir_test.go
index 19957d9..3450c9d 100644
--- a/gui/internal/model/newdir_test.go
+++ b/gui/internal/model/newdir_test.go
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/internal/engine"
)
// TestAddDirectory: a directory added in the window is one krino loads, its
diff --git a/gui/internal/model/plan.go b/gui/internal/model/plan.go
index 12b0d13..ccbf17b 100644
--- a/gui/internal/model/plan.go
+++ b/gui/internal/model/plan.go
@@ -11,10 +11,10 @@ import (
"sort"
"time"
- "krino/internal/engine"
- "krino/internal/lock"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/lock"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
// Row is one line of the Plan tab: a file krino would act on, or one it
diff --git a/gui/internal/model/plan_test.go b/gui/internal/model/plan_test.go
index 8873e55..a36cf85 100644
--- a/gui/internal/model/plan_test.go
+++ b/gui/internal/model/plan_test.go
@@ -12,9 +12,9 @@ import (
"testing"
"time"
- "krino/internal/engine"
- "krino/internal/lock"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/lock"
+ "git.labunix.xyz/krino/internal/plan"
)
// sandboxDir builds a home with one configured directory holding files, and
diff --git a/gui/internal/model/prefs.go b/gui/internal/model/prefs.go
index 4b70de3..f5ffee5 100644
--- a/gui/internal/model/prefs.go
+++ b/gui/internal/model/prefs.go
@@ -7,7 +7,7 @@ import (
"os"
"path/filepath"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Prefs is how the window behaves - nothing about what krino does to
diff --git a/gui/internal/model/preview.go b/gui/internal/model/preview.go
index f8bf75d..ee28241 100644
--- a/gui/internal/model/preview.go
+++ b/gui/internal/model/preview.go
@@ -12,7 +12,7 @@ import (
"strings"
"unicode/utf8"
- "krino/internal/cond"
+ "git.labunix.xyz/krino/internal/cond"
)
// PreviewKind is what a preview holds.
diff --git a/gui/internal/model/rules.go b/gui/internal/model/rules.go
index 1b2eec8..ffc0add 100644
--- a/gui/internal/model/rules.go
+++ b/gui/internal/model/rules.go
@@ -11,10 +11,10 @@ import (
"os"
"strings"
- "krino/internal/cond"
- "krino/internal/config"
- "krino/internal/engine"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/xdg"
)
// ErrChangedOnDisk is Save's refusal when the file was edited elsewhere
diff --git a/gui/internal/model/rules_test.go b/gui/internal/model/rules_test.go
index c8ee212..b5803dd 100644
--- a/gui/internal/model/rules_test.go
+++ b/gui/internal/model/rules_test.go
@@ -10,7 +10,7 @@ import (
"strings"
"testing"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/internal/engine"
)
// TestOpenAndCheck: the editor opens a directory's own file, reports the
diff --git a/gui/internal/model/settings.go b/gui/internal/model/settings.go
index 7c31997..5763d68 100644
--- a/gui/internal/model/settings.go
+++ b/gui/internal/model/settings.go
@@ -6,7 +6,7 @@ import (
"fmt"
"strings"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// DirSettings are the forms a directory file may carry above its rules, in
diff --git a/gui/internal/model/testrule.go b/gui/internal/model/testrule.go
index 3cf0437..edd0bf7 100644
--- a/gui/internal/model/testrule.go
+++ b/gui/internal/model/testrule.go
@@ -6,8 +6,8 @@ import (
"context"
"fmt"
- "krino/internal/engine"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
)
// RuleHit is one file a rule would act on, and what it would do to it.
diff --git a/gui/internal/ui/forms.go b/gui/internal/ui/forms.go
index a7211cb..d30e409 100644
--- a/gui/internal/ui/forms.go
+++ b/gui/internal/ui/forms.go
@@ -10,9 +10,9 @@ import (
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
- "krino/internal/config"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/sexp"
)
// condKinds are the tests a condition row offers, plus the three operators
diff --git a/gui/internal/ui/highlight.go b/gui/internal/ui/highlight.go
index 786acee..88c701b 100644
--- a/gui/internal/ui/highlight.go
+++ b/gui/internal/ui/highlight.go
@@ -5,7 +5,7 @@ package ui
import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
+ "git.labunix.xyz/krino/gui/internal/model"
)
// The colours a configuration is painted in. They are chosen to read on a
diff --git a/gui/internal/ui/history.go b/gui/internal/ui/history.go
index bbdb27d..f82f6e3 100644
--- a/gui/internal/ui/history.go
+++ b/gui/internal/ui/history.go
@@ -11,8 +11,8 @@ import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
- "krino/internal/engine"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/engine"
)
// historyView is the History & undo tab: the runs on the left, the selected
diff --git a/gui/internal/ui/plan.go b/gui/internal/ui/plan.go
index bcbb8a2..1ee2a51 100644
--- a/gui/internal/ui/plan.go
+++ b/gui/internal/ui/plan.go
@@ -15,10 +15,10 @@ import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// planView is the Plan tab: a directory picker and Scan, the plan as a list
diff --git a/gui/internal/ui/rules.go b/gui/internal/ui/rules.go
index 62cf074..17f20ab 100644
--- a/gui/internal/ui/rules.go
+++ b/gui/internal/ui/rules.go
@@ -13,8 +13,8 @@ import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
"github.com/diamondburned/gotk4/pkg/pango"
- "krino/gui/internal/model"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/xdg"
)
// checkDelay is how long the editor waits after a keystroke before it
diff --git a/gui/internal/ui/settings.go b/gui/internal/ui/settings.go
index 79dba6a..32a6066 100644
--- a/gui/internal/ui/settings.go
+++ b/gui/internal/ui/settings.go
@@ -5,8 +5,8 @@ package ui
import (
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/xdg"
)
// settingsWindow is Settings: krino's defaults, which every directory
diff --git a/gui/internal/ui/window.go b/gui/internal/ui/window.go
index c52234b..3d40441 100644
--- a/gui/internal/ui/window.go
+++ b/gui/internal/ui/window.go
@@ -14,10 +14,10 @@ import (
"github.com/diamondburned/gotk4/pkg/glib/v2"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
- "krino/gui/internal/model"
- "krino/internal/engine"
- "krino/internal/plan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/gui/internal/model"
+ "git.labunix.xyz/krino/internal/engine"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Version is what About shows. main stamps it at build time; "dev" is
diff --git a/internal/apply/apply.go b/internal/apply/apply.go
index d7bf71e..c0055a2 100644
--- a/internal/apply/apply.go
+++ b/internal/apply/apply.go
@@ -14,9 +14,9 @@ import (
"path/filepath"
"time"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/trash"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/trash"
)
// StepResult is what happened to one step, in the order the executor ran
diff --git a/internal/apply/apply_test.go b/internal/apply/apply_test.go
index 6134988..cd217c0 100644
--- a/internal/apply/apply_test.go
+++ b/internal/apply/apply_test.go
@@ -10,9 +10,9 @@ import (
"testing"
"time"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/trash"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/trash"
)
// chainFor builds a Chain whose File describes path as it is on disk now, so
diff --git a/internal/apply/swap_test.go b/internal/apply/swap_test.go
index ccac945..d16d3f9 100644
--- a/internal/apply/swap_test.go
+++ b/internal/apply/swap_test.go
@@ -9,8 +9,8 @@ import (
"strings"
"testing"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
// planned writes body to root/rel and returns the chain a plan would build
diff --git a/internal/cond/compile.go b/internal/cond/compile.go
index 6580ee9..42617be 100644
--- a/internal/cond/compile.go
+++ b/internal/cond/compile.go
@@ -10,9 +10,9 @@ import (
"sort"
"strings"
- "krino/internal/config"
- "krino/internal/norm"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/norm"
+ "git.labunix.xyz/krino/internal/sexp"
)
// maxDepth is the deepest a condition may nest; the top-level conditions
diff --git a/internal/cond/compile_test.go b/internal/cond/compile_test.go
index 8432365..d9830d9 100644
--- a/internal/cond/compile_test.go
+++ b/internal/cond/compile_test.go
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
func nodes(t *testing.T, src string) []*sexp.Node {
diff --git a/internal/cond/eval.go b/internal/cond/eval.go
index 2c35dba..2ae31fb 100644
--- a/internal/cond/eval.go
+++ b/internal/cond/eval.go
@@ -8,7 +8,7 @@ import (
"strings"
"time"
- "krino/internal/norm"
+ "git.labunix.xyz/krino/internal/norm"
)
// Facts is what a condition may ask about one file. Implementations
diff --git a/internal/cond/eval_test.go b/internal/cond/eval_test.go
index 73e0ea6..5074557 100644
--- a/internal/cond/eval_test.go
+++ b/internal/cond/eval_test.go
@@ -10,7 +10,7 @@ import (
"testing"
"time"
- "krino/internal/norm"
+ "git.labunix.xyz/krino/internal/norm"
)
var now = time.Date(2026, 9, 11, 12, 0, 0, 0, time.UTC)
diff --git a/internal/cond/types.go b/internal/cond/types.go
index 97e761a..791ccba 100644
--- a/internal/cond/types.go
+++ b/internal/cond/types.go
@@ -8,7 +8,7 @@ import (
"regexp"
"time"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// Options carries a rule's resolved case and fold settings into compilation.
diff --git a/internal/config/diag.go b/internal/config/diag.go
index 5cee428..45f383a 100644
--- a/internal/config/diag.go
+++ b/internal/config/diag.go
@@ -8,7 +8,7 @@ package config
import (
"fmt"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// Diag is one problem in a config file.
diff --git a/internal/config/dir.go b/internal/config/dir.go
index b82a0b3..a025d74 100644
--- a/internal/config/dir.go
+++ b/internal/config/dir.go
@@ -7,8 +7,8 @@ import (
"path/filepath"
"strings"
- "krino/internal/sexp"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Dir is one directory's config, dirs/<name>.conf.
diff --git a/internal/config/enum_test.go b/internal/config/enum_test.go
index 06f5640..d73396f 100644
--- a/internal/config/enum_test.go
+++ b/internal/config/enum_test.go
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
- "krino/internal/enumtest"
+ "git.labunix.xyz/krino/internal/enumtest"
)
// TestEverySettingValuePrintsAsItselfInAConfig: PrintRule writes settings
diff --git a/internal/config/load.go b/internal/config/load.go
index 3a1cbeb..b243a38 100644
--- a/internal/config/load.go
+++ b/internal/config/load.go
@@ -11,8 +11,8 @@ import (
"path/filepath"
"slices"
- "krino/internal/sexp"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Config is the whole configuration: the main file and the directories it
diff --git a/internal/config/main.go b/internal/config/main.go
index 2764c8a..b8a4171 100644
--- a/internal/config/main.go
+++ b/internal/config/main.go
@@ -7,8 +7,8 @@ import (
"path/filepath"
"regexp"
- "krino/internal/sexp"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Main is krino.conf.
diff --git a/internal/config/print.go b/internal/config/print.go
index 6ae51e0..690be7a 100644
--- a/internal/config/print.go
+++ b/internal/config/print.go
@@ -6,7 +6,7 @@ import (
"fmt"
"strings"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// PrintRule renders a rule the way krino.conf(5) and the examples write
diff --git a/internal/config/print_test.go b/internal/config/print_test.go
index 87b6878..8aeb542 100644
--- a/internal/config/print_test.go
+++ b/internal/config/print_test.go
@@ -6,7 +6,7 @@ import (
"strings"
"testing"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
func parseOne(t *testing.T, body string) *Dir {
diff --git a/internal/config/settings.go b/internal/config/settings.go
index 22b2f91..5dd3e57 100644
--- a/internal/config/settings.go
+++ b/internal/config/settings.go
@@ -7,7 +7,7 @@ import (
"slices"
"time"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
// CaseMode says whether name, path and content matching ignores case.
diff --git a/internal/config/settings_test.go b/internal/config/settings_test.go
index 341c0f3..8a9124a 100644
--- a/internal/config/settings_test.go
+++ b/internal/config/settings_test.go
@@ -8,7 +8,7 @@ import (
"testing"
"time"
- "krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/sexp"
)
func parseSettings(t *testing.T, src string) (Settings, []*Diag) {
diff --git a/internal/config/skel.go b/internal/config/skel.go
index e0d7dd8..b9b4384 100644
--- a/internal/config/skel.go
+++ b/internal/config/skel.go
@@ -13,8 +13,8 @@ import (
"unicode"
"unicode/utf8"
- "krino/internal/sexp"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/sexp"
+ "git.labunix.xyz/krino/internal/xdg"
)
//go:embed skel/krino.conf
diff --git a/internal/dup/dup.go b/internal/dup/dup.go
index 042aea8..f7bc5af 100644
--- a/internal/dup/dup.go
+++ b/internal/dup/dup.go
@@ -17,7 +17,7 @@ import (
"sync"
"time"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/scan"
)
// partialChunk is the size of the head and tail read for the partial hash.
diff --git a/internal/dup/dup_test.go b/internal/dup/dup_test.go
index bd593de..8984336 100644
--- a/internal/dup/dup_test.go
+++ b/internal/dup/dup_test.go
@@ -13,7 +13,7 @@ import (
"testing"
"time"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/scan"
)
var base = time.Date(2026, 9, 1, 0, 0, 0, 0, time.UTC)
diff --git a/internal/engine/apply.go b/internal/engine/apply.go
index 6c72a14..1e59aa1 100644
--- a/internal/engine/apply.go
+++ b/internal/engine/apply.go
@@ -15,12 +15,12 @@ import (
"syscall"
"time"
- "krino/internal/apply"
- "krino/internal/journal"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/trash"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/apply"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/trash"
+ "git.labunix.xyz/krino/internal/xdg"
)
// ApplyResult is what one Apply or ApplyUndo call did.
diff --git a/internal/engine/apply_test.go b/internal/engine/apply_test.go
index 6c724b1..a6b3185 100644
--- a/internal/engine/apply_test.go
+++ b/internal/engine/apply_test.go
@@ -11,10 +11,10 @@ import (
"testing"
"time"
- "krino/internal/apply"
- "krino/internal/journal"
- "krino/internal/plan"
- "krino/internal/trash"
+ "git.labunix.xyz/krino/internal/apply"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/trash"
)
// applyFixture builds a directory with two files and a rule moving pdfs into
diff --git a/internal/engine/cache_test.go b/internal/engine/cache_test.go
index 8c52d48..341f7ee 100644
--- a/internal/engine/cache_test.go
+++ b/internal/engine/cache_test.go
@@ -12,8 +12,8 @@ import (
"time"
"unicode"
- "krino/internal/config"
- "krino/internal/extract"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/extract"
)
// countingPDFTree makes ~/dl holding the given .pdf files, and a fake
diff --git a/internal/engine/engine.go b/internal/engine/engine.go
index cde1298..0c3186d 100644
--- a/internal/engine/engine.go
+++ b/internal/engine/engine.go
@@ -12,11 +12,11 @@ import (
"strings"
"time"
- "krino/internal/cond"
- "krino/internal/config"
- "krino/internal/extract"
- "krino/internal/ignore"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/extract"
+ "git.labunix.xyz/krino/internal/ignore"
+ "git.labunix.xyz/krino/internal/plan"
)
// Engine holds a loaded, compiled configuration: everything a front end
diff --git a/internal/engine/engine_test.go b/internal/engine/engine_test.go
index 86cf9d9..89ea6f0 100644
--- a/internal/engine/engine_test.go
+++ b/internal/engine/engine_test.go
@@ -10,8 +10,8 @@ import (
"testing"
"time"
- "krino/internal/cond"
- "krino/internal/config"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/config"
)
// sandbox gives a test its own HOME with no XDG overrides and returns it.
diff --git a/internal/engine/enum_test.go b/internal/engine/enum_test.go
index 416da2a..728b4a2 100644
--- a/internal/engine/enum_test.go
+++ b/internal/engine/enum_test.go
@@ -5,8 +5,8 @@ package engine
import (
"testing"
- "krino/internal/enumtest"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/enumtest"
+ "git.labunix.xyz/krino/internal/plan"
)
// TestEveryKindHasALogAction: every plan.Kind is written to the log under
diff --git a/internal/engine/exclude_test.go b/internal/engine/exclude_test.go
index 36f1262..d658520 100644
--- a/internal/engine/exclude_test.go
+++ b/internal/engine/exclude_test.go
@@ -12,8 +12,8 @@ import (
"testing"
"time"
- "krino/internal/plan"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
)
// excludeTree creates ~/dl with files (name -> content), all old enough to
diff --git a/internal/engine/explain_test.go b/internal/engine/explain_test.go
index f6ade69..c92dc64 100644
--- a/internal/engine/explain_test.go
+++ b/internal/engine/explain_test.go
@@ -11,7 +11,7 @@ import (
"testing"
"time"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/plan"
)
// TestExplainReportsCapturesAndChain: explain returns what each matching
diff --git a/internal/engine/facts.go b/internal/engine/facts.go
index d664b0e..94ac3f4 100644
--- a/internal/engine/facts.go
+++ b/internal/engine/facts.go
@@ -13,14 +13,14 @@ import (
"sync"
"time"
- "krino/internal/cond"
- "krino/internal/dup"
- "krino/internal/extract"
- "krino/internal/kwcache"
- "krino/internal/norm"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/dup"
+ "git.labunix.xyz/krino/internal/extract"
+ "git.labunix.xyz/krino/internal/kwcache"
+ "git.labunix.xyz/krino/internal/norm"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// matchRun holds the state shared by every file evaluated during one Match
diff --git a/internal/engine/match.go b/internal/engine/match.go
index 9943073..5158176 100644
--- a/internal/engine/match.go
+++ b/internal/engine/match.go
@@ -15,13 +15,13 @@ import (
"sync"
"time"
- "krino/internal/cond"
- "krino/internal/config"
- "krino/internal/kwcache"
- "krino/internal/norm"
- "krino/internal/plan"
- "krino/internal/scan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/cond"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/kwcache"
+ "git.labunix.xyz/krino/internal/norm"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// RuleMatch is one rule that matched a file, and why.
diff --git a/internal/engine/nodelete_test.go b/internal/engine/nodelete_test.go
index 80d9ed9..af7597c 100644
--- a/internal/engine/nodelete_test.go
+++ b/internal/engine/nodelete_test.go
@@ -12,8 +12,8 @@ import (
"testing"
"time"
- "krino/internal/journal"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
)
// sameBytes is the content every file in these tests shares.
diff --git a/internal/engine/plan.go b/internal/engine/plan.go
index f2d6312..bf4c64c 100644
--- a/internal/engine/plan.go
+++ b/internal/engine/plan.go
@@ -6,7 +6,7 @@ import (
"context"
"time"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/plan"
)
// DirPlan is one directory's plan: the match Result it was built from (for
diff --git a/internal/engine/plan_bench_test.go b/internal/engine/plan_bench_test.go
index a3d08bb..1b4f51c 100644
--- a/internal/engine/plan_bench_test.go
+++ b/internal/engine/plan_bench_test.go
@@ -10,7 +10,7 @@ import (
"testing"
"time"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/plan"
)
// BenchmarkPlan measures krino's own cost of planning: walking a tree,
diff --git a/internal/engine/plan_test.go b/internal/engine/plan_test.go
index a169168..91f52a4 100644
--- a/internal/engine/plan_test.go
+++ b/internal/engine/plan_test.go
@@ -10,7 +10,7 @@ import (
"testing"
"time"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/plan"
)
func TestPlanBuildsChainsFromMatchedFiles(t *testing.T) {
diff --git a/internal/engine/property_test.go b/internal/engine/property_test.go
index 8a43d7b..3bf9871 100644
--- a/internal/engine/property_test.go
+++ b/internal/engine/property_test.go
@@ -14,8 +14,8 @@ import (
"testing"
"time"
- "krino/internal/journal"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
)
// propertyNames are the file names generated trees draw from: ordinary,
diff --git a/internal/engine/roundtrip_test.go b/internal/engine/roundtrip_test.go
index 218e9fe..720b5fb 100644
--- a/internal/engine/roundtrip_test.go
+++ b/internal/engine/roundtrip_test.go
@@ -13,8 +13,8 @@ import (
"testing"
"time"
- "krino/internal/journal"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
)
// snapshot records every file under root: path, content hash, mode and mtime.
diff --git a/internal/engine/session.go b/internal/engine/session.go
index c2830bd..8d5977a 100644
--- a/internal/engine/session.go
+++ b/internal/engine/session.go
@@ -6,9 +6,9 @@ import (
"context"
"fmt"
- "krino/internal/journal"
- "krino/internal/lock"
- "krino/internal/plan"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/lock"
+ "git.labunix.xyz/krino/internal/plan"
)
// Session is one run of krino over one or more directories: the log it
diff --git a/internal/engine/undo_identity_test.go b/internal/engine/undo_identity_test.go
index 994c802..4c25614 100644
--- a/internal/engine/undo_identity_test.go
+++ b/internal/engine/undo_identity_test.go
@@ -11,9 +11,9 @@ import (
"testing"
"time"
- "krino/internal/journal"
- "krino/internal/plan"
- "krino/internal/trash"
+ "git.labunix.xyz/krino/internal/journal"
+ "git.labunix.xyz/krino/internal/plan"
+ "git.labunix.xyz/krino/internal/trash"
)
// appliedRun makes each directory of files under the sandbox home (a map of
diff --git a/internal/plan/chain.go b/internal/plan/chain.go
index bb4876b..b8a95f6 100644
--- a/internal/plan/chain.go
+++ b/internal/plan/chain.go
@@ -9,9 +9,9 @@ import (
"strings"
"time"
- "krino/internal/config"
- "krino/internal/scan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// Claims is the set of destination paths already spoken for, shared across
diff --git a/internal/plan/chain_test.go b/internal/plan/chain_test.go
index 0c89987..e4fe6cf 100644
--- a/internal/plan/chain_test.go
+++ b/internal/plan/chain_test.go
@@ -7,8 +7,8 @@ import (
"testing"
"time"
- "krino/internal/config"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/scan"
)
func file(root, rel string) scan.File {
diff --git a/internal/plan/conflict.go b/internal/plan/conflict.go
index 7cebc23..f5c1224 100644
--- a/internal/plan/conflict.go
+++ b/internal/plan/conflict.go
@@ -7,8 +7,8 @@ import (
"os"
"path/filepath"
- "krino/internal/config"
- "krino/internal/dup"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/dup"
)
// Disk is what Build needs from the filesystem to resolve conflicts, so
diff --git a/internal/plan/conflict_test.go b/internal/plan/conflict_test.go
index 289cd14..ba415d5 100644
--- a/internal/plan/conflict_test.go
+++ b/internal/plan/conflict_test.go
@@ -8,7 +8,7 @@ import (
"testing"
"time"
- "krino/internal/config"
+ "git.labunix.xyz/krino/internal/config"
)
// fakeDisk reports the paths it was given as existing, and equality of
diff --git a/internal/plan/enum_test.go b/internal/plan/enum_test.go
index 5e4f645..21f6a63 100644
--- a/internal/plan/enum_test.go
+++ b/internal/plan/enum_test.go
@@ -6,8 +6,8 @@ import (
"strings"
"testing"
- "krino/internal/config"
- "krino/internal/enumtest"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/enumtest"
)
// TestEveryKindIsNamed: every Kind has its own display name and a JSON
diff --git a/internal/plan/fuzz_test.go b/internal/plan/fuzz_test.go
index 91a8421..71bb843 100644
--- a/internal/plan/fuzz_test.go
+++ b/internal/plan/fuzz_test.go
@@ -9,9 +9,9 @@ import (
"testing"
"time"
- "krino/internal/config"
- "krino/internal/scan"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/scan"
+ "git.labunix.xyz/krino/internal/xdg"
)
// FuzzExpand: expanding any template against any file name never panics,
diff --git a/internal/plan/hostile_test.go b/internal/plan/hostile_test.go
index 13c2afd..4e30b41 100644
--- a/internal/plan/hostile_test.go
+++ b/internal/plan/hostile_test.go
@@ -7,7 +7,7 @@ import (
"testing"
"time"
- "krino/internal/config"
+ "git.labunix.xyz/krino/internal/config"
)
// TestBuildRefusesDotNames: a rename whose placeholders produce "", "." or
diff --git a/internal/plan/json.go b/internal/plan/json.go
index 04b96ac..a5d7bc8 100644
--- a/internal/plan/json.go
+++ b/internal/plan/json.go
@@ -6,7 +6,7 @@ import (
"sort"
"time"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/scan"
)
// jsonNote is carried in every JSON document, warning readers that the
diff --git a/internal/plan/step.go b/internal/plan/step.go
index b3e34c1..c613ce5 100644
--- a/internal/plan/step.go
+++ b/internal/plan/step.go
@@ -5,8 +5,8 @@ package plan
import (
"fmt"
- "krino/internal/config"
- "krino/internal/scan"
+ "git.labunix.xyz/krino/internal/config"
+ "git.labunix.xyz/krino/internal/scan"
)
// Kind is what a step does.
diff --git a/internal/scan/scan.go b/internal/scan/scan.go
index bd717e0..4296ff6 100644
--- a/internal/scan/scan.go
+++ b/internal/scan/scan.go
@@ -13,7 +13,7 @@ import (
"sort"
"time"
- "krino/internal/ignore"
+ "git.labunix.xyz/krino/internal/ignore"
)
// File is a regular file found by Walk.
diff --git a/internal/scan/scan_test.go b/internal/scan/scan_test.go
index 35e7a0d..0102b02 100644
--- a/internal/scan/scan_test.go
+++ b/internal/scan/scan_test.go
@@ -13,7 +13,7 @@ import (
"testing"
"time"
- "krino/internal/ignore"
+ "git.labunix.xyz/krino/internal/ignore"
)
var now = time.Date(2026, 9, 11, 12, 0, 0, 0, time.UTC)
diff --git a/internal/trash/trash.go b/internal/trash/trash.go
index fdd21f8..5d6ebe0 100644
--- a/internal/trash/trash.go
+++ b/internal/trash/trash.go
@@ -17,7 +17,7 @@ import (
"time"
"unicode/utf8"
- "krino/internal/xdg"
+ "git.labunix.xyz/krino/internal/xdg"
)
// ErrOtherFilesystem is returned by Put when path is not on the same