diff --git a/cmd/toolsrv/internal/fs/proc.go b/cmd/toolsrv/internal/fs/proc.go index 5be6dfc..afe8aea 100644 --- a/cmd/toolsrv/internal/fs/proc.go +++ b/cmd/toolsrv/internal/fs/proc.go @@ -18,6 +18,7 @@ import ( "ollie/cmd/toolsrv/internal/exec" "ollie/cmd/toolsrv/internal/registry" + "ollie/paths" "ollie/toolsrv" ) @@ -95,7 +96,7 @@ func (st *State) CWD() string { // SetCWD sets the current working directory. func (st *State) SetCWD(dir string) { st.mu.Lock() - st.cwd = dir + st.cwd = paths.ExpandHome(dir) st.mu.Unlock() } diff --git a/cmd/toolsrv/main.go b/cmd/toolsrv/main.go index 46ba3f2..a53d2fd 100644 --- a/cmd/toolsrv/main.go +++ b/cmd/toolsrv/main.go @@ -29,6 +29,7 @@ import ( "ollie/env" "ollie/fsedsl" olog "ollie/log" + "ollie/paths" ) var ( @@ -61,6 +62,9 @@ func main() { os.Exit(1) } + // Expand ~ in CWD (shell doesn't expand ~ in arguments). + *cwd = paths.ExpandHome(*cwd) + // Set up logger sink := olog.NewSink(os.Stdout, os.Stderr, olog.LevelInfo) defer sink.Flush()