diff options
Diffstat (limited to 'internal/config')
| -rw-r--r-- | internal/config/load.go | 6 | ||||
| -rw-r--r-- | internal/config/load_test.go | 11 |
2 files changed, 17 insertions, 0 deletions
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/<name>.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) + } +} |
