Use XDG_STATE_HOME on all platforms
Check XDG_STATE_HOME first to determine zot's home on all platforms, if not set, use platform specific values.
- commit
- 0ae115b1cccb14c5f2f195cea4e9db2763ce3723
- author
- Eckhart Koeppen · · 2026-07-06 10:44 UTC
- committer
- Eckhart Köppen · · 2026-07-12 05:19 UTC
- parent
- dbd0dfa
- signature
- unsigned
2 files · +6 -6
M examples/extensions/mcp-bridge/config.go +3 -3
| @@ -47,6 +47,9 @@ func zotHome() string { | |||
| 47 | 47 | if h := os.Getenv("ZOT_HOME"); h != "" { | |
| 48 | 48 | return h | |
| 49 | 49 | } | |
| 50 | + | if xdg := os.Getenv("XDG_STATE_HOME"); xdg != "" { | |
| 51 | + | return filepath.Join(xdg, "zot") | |
| 52 | + | } | |
| 50 | 53 | switch runtime.GOOS { | |
| 51 | 54 | case "darwin": | |
| 52 | 55 | home, _ := os.UserHomeDir() | |
| @@ -54,9 +57,6 @@ func zotHome() string { | |||
| 54 | 57 | case "windows": | |
| 55 | 58 | return filepath.Join(os.Getenv("APPDATA"), "zot") | |
| 56 | 59 | default: // linux, freebsd, etc. | |
| 57 | - | if xdg := os.Getenv("XDG_STATE_HOME"); xdg != "" { | |
| 58 | - | return filepath.Join(xdg, "zot") | |
| 59 | - | } | |
| 60 | 60 | home, _ := os.UserHomeDir() | |
| 61 | 61 | return filepath.Join(home, ".local", "state", "zot") | |
| 62 | 62 | } | |
| @@ -47,6 +47,9 @@ func zotHome() string { | |||||
| 47 | if h := os.Getenv("ZOT_HOME"); h != "" { | 47 | if h := os.Getenv("ZOT_HOME"); h != "" { | ||
| 48 | return h | 48 | return h | ||
| 49 | } | 49 | } | ||
| 50 | + | if xdg := os.Getenv("XDG_STATE_HOME"); xdg != "" { | |||
| 51 | + | return filepath.Join(xdg, "zot") | |||
| 52 | + | } | |||
| 50 | switch runtime.GOOS { | 53 | switch runtime.GOOS { | ||
| 51 | case "darwin": | 54 | case "darwin": | ||
| 52 | home, _ := os.UserHomeDir() | 55 | home, _ := os.UserHomeDir() | ||
| @@ -54,9 +57,6 @@ func zotHome() string { | |||||
| 54 | case "windows": | 57 | case "windows": | ||
| 55 | return filepath.Join(os.Getenv("APPDATA"), "zot") | 58 | return filepath.Join(os.Getenv("APPDATA"), "zot") | ||
| 56 | default: // linux, freebsd, etc. | 59 | default: // linux, freebsd, etc. | ||
| 57 | - | if xdg := os.Getenv("XDG_STATE_HOME"); xdg != "" { | |||
| 58 | - | return filepath.Join(xdg, "zot") | |||
| 59 | - | } | |||
| 60 | home, _ := os.UserHomeDir() | 60 | home, _ := os.UserHomeDir() | ||
| 61 | return filepath.Join(home, ".local", "state", "zot") | 61 | return filepath.Join(home, ".local", "state", "zot") | ||
| 62 | } | 62 | } | ||
M packages/agent/config.go +3 -3
| @@ -108,6 +108,9 @@ func ZotHome() string { | |||
| 108 | 108 | if v := os.Getenv("ZOT_HOME"); v != "" { | |
| 109 | 109 | return v | |
| 110 | 110 | } | |
| 111 | + | if v := os.Getenv("XDG_STATE_HOME"); v != "" { | |
| 112 | + | return filepath.Join(v, "zot") | |
| 113 | + | } | |
| 111 | 114 | switch runtime.GOOS { | |
| 112 | 115 | case "darwin": | |
| 113 | 116 | if home, err := os.UserHomeDir(); err == nil { | |
| @@ -118,9 +121,6 @@ func ZotHome() string { | |||
| 118 | 121 | return filepath.Join(v, "zot") | |
| 119 | 122 | } | |
| 120 | 123 | } | |
| 121 | - | if v := os.Getenv("XDG_STATE_HOME"); v != "" { | |
| 122 | - | return filepath.Join(v, "zot") | |
| 123 | - | } | |
| 124 | 124 | if home, err := os.UserHomeDir(); err == nil { | |
| 125 | 125 | return filepath.Join(home, ".local", "state", "zot") | |
| 126 | 126 | } | |
| @@ -108,6 +108,9 @@ func ZotHome() string { | |||||
| 108 | if v := os.Getenv("ZOT_HOME"); v != "" { | 108 | if v := os.Getenv("ZOT_HOME"); v != "" { | ||
| 109 | return v | 109 | return v | ||
| 110 | } | 110 | } | ||
| 111 | + | if v := os.Getenv("XDG_STATE_HOME"); v != "" { | |||
| 112 | + | return filepath.Join(v, "zot") | |||
| 113 | + | } | |||
| 111 | switch runtime.GOOS { | 114 | switch runtime.GOOS { | ||
| 112 | case "darwin": | 115 | case "darwin": | ||
| 113 | if home, err := os.UserHomeDir(); err == nil { | 116 | if home, err := os.UserHomeDir(); err == nil { | ||
| @@ -118,9 +121,6 @@ func ZotHome() string { | |||||
| 118 | return filepath.Join(v, "zot") | 121 | return filepath.Join(v, "zot") | ||
| 119 | } | 122 | } | ||
| 120 | } | 123 | } | ||
| 121 | - | if v := os.Getenv("XDG_STATE_HOME"); v != "" { | |||
| 122 | - | return filepath.Join(v, "zot") | |||
| 123 | - | } | |||
| 124 | if home, err := os.UserHomeDir(); err == nil { | 124 | if home, err := os.UserHomeDir(); err == nil { | ||
| 125 | return filepath.Join(home, ".local", "state", "zot") | 125 | return filepath.Join(home, ".local", "state", "zot") | ||
| 126 | } | 126 | } | ||