From 3f8679be9373ee7508d512dfdfc1dda0839c7f90 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Sat, 12 Sep 2026 20:14:47 +0200 Subject: krino: acting — trash, journal, apply, lock, review, undo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/config/load.go | 6 ++++++ internal/config/load_test.go | 11 +++++++++++ 2 files changed, 17 insertions(+) (limited to 'internal/config') diff --git a/internal/config/load.go b/internal/config/load.go index f6eaeae..cd4d97c 100644 --- a/internal/config/load.go +++ b/internal/config/load.go @@ -91,3 +91,9 @@ func (c *Config) LogFile() string { } return filepath.Join(xdg.StateHome(), "krino", "krino.log") } + +// LockFile is where a directory's lock lives while a run is active: +// $XDG_STATE_HOME/krino/.lock, beside the log (spec §3). +func (c *Config) LockFile(name string) string { + return filepath.Join(xdg.StateHome(), "krino", name+".lock") +} diff --git a/internal/config/load_test.go b/internal/config/load_test.go index be72fc0..1cc3ac9 100644 --- a/internal/config/load_test.go +++ b/internal/config/load_test.go @@ -104,3 +104,14 @@ func TestDefaultFileAndLogFile(t *testing.T) { t.Errorf("LogFile() = %q", got) } } + +func TestLockFile(t *testing.T) { + h := t.TempDir() + t.Setenv("HOME", h) + t.Setenv("XDG_STATE_HOME", "") + c := &Config{} + want := filepath.Join(h, ".local", "state", "krino", "dl.lock") + if got := c.LockFile("dl"); got != want { + t.Errorf("LockFile = %q, want %q", got, want) + } +} -- cgit v1.3