-
Notifications
You must be signed in to change notification settings - Fork 624
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: follow XDG spec on linux/mac and use windows known folders for config and logs #1153
Conversation
standards on windows
update comments to reflect path ouputs on various sytems match existing behavior for defaults in computercontroller and memory
that's used in the folder name on windows
added support for legacy sessions at
|
this looks great! we'll probably wanna rebase after merging #880 (the Windows PR has been waiting for some time) |
I am a windows user - please honor XDG spec on windows if XDG environment variables are set and if not put them in windows known folders |
@salman1993 rebased with the windows changes! 🙏 |
@dsisnero thanks for the suggestion, I'm going to put that into a separate issue so it can be discussed and committed separately. |
migrate to using
etcetera
to handle config/log/state files to follow XDG when on MacOS/Linux and use Windows known folders on windowsetcetera
crate which allows us to useXDG
on mac, and support known windows folderstl;dr table mapping changes for macos/linux
config.yaml
~/.config/goose/config.yaml
~/.config/goose/config.yaml
sessions
~/.local/share/goose/sessions
~/.config/goose/sessions/
goose.log
~/.local/state/goose/logs/goose.log
~/.config/goose/logs/goose.log
goose-cli logs
~/.local/state/goose/logs/cli/*
~/.config/goose/logs/cli/*
goose-server logs
~/.local/state/goose/logs/server/*
~/.config/goose/logs/server/*
computer_controller
~/.cache/goose/computer_controller
$HOME/Library/Caches
developer (goosehints)
~/.config/goose/.goosehints
~/.config/goose/.goosehints
memory
~/.config/goose/memory
~/.config/goose/memory
XDG_STATE_HOME
for logsXDG_DATA_HOME
for session filesWindows
, where~
==C:\Users\$USERNAME\
:config.yaml
~\AppData\Roaming\Block\goose\config\config.yaml
sessions
~\AppData\Roaming\Block\goose\data\sessions\*
goose.log
~\AppData\Roaming\Block\goose\logs\data\goose.log
goose-cli logs
~\AppData\Roaming\Block\goose\data\logs\cli\*
goose-server logs
~\AppData\Roaming\Block\goose\data\logs\server\*
computer_controller
~\AppData\Local\Block\goose\cache\computer_controller\
developer (goosehints)
~\AppData\Roaming\Block\goose\config\.goosehints
memory
~\AppData\Roaming\Block\goose\config\memory
dirs
crate since it does not allow forcing the use ofXDG
on mac, and we want to keepXDG
on mac~/.config
and into STATE/DATA dirsstate_dir
and we fallback todata_dir
in that caseonce_cell
to be the same version across all cratesAPP_STRATEGY
static per crate, which allows us to rip out crates easier in the future/tmp
/.config
relative where it existsresolves #1049