Opened 6 years ago

Closed 5 years ago

#1455 closed change request (fixed)

XDG basedir support for csi config, egg cache and maybe more

Reported by: Vasilij Schneidermann Owned by:
Priority: minor Milestone: 5.1
Component: core tools Version: 5.0.0
Keywords: Cc:
Estimated difficulty: easy

Description

https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
https://blogs.msdn.microsoft.com/oldnewthing/20050701-09/?p=35133/
https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx

This is a specification that allows users to unclutter their home directory by keeping config files in (a customizable) directory and cache files in another one (also customizable). An example implementation for Unix-likes (where it's safe to assume HOME is set) has been attached. Windows has something (almost) comparable in form of the APPDATA (for user-specific configuration) and LOCALAPPDATA (for user-specific non-configuration, exists since Vista) environment variables. In case LOCALAPPDATA isn't defined, APPDATA could be used instead. I'm not 100% sure whether you can just use get-environment-variable on Windows and have it work, someone would need to test this.

With this we could (for both Windows and Unix-likes):

  • Look up a user config/cache directory for the platform
  • Check whether a config/cache file exists
  • If yes, read it from that location, otherwise fall back to a default

The last one is optional and might make this a change request. Falling back to a default would preserve default behavior, ignoring it would introduce a change. Possible candidates include ~/.csirc (config), the egg cache (cache) and setup-defaults (config).

PS: Looking up .csirc on Windows probably never worked as it relies on resolving HOME which isn't set by default. This would make it work again, albeit for a different location than previously documented.

Attachments (1)

xdg.scm (522 bytes) - added by Vasilij Schneidermann 6 years ago.

Download all attachments as: .zip

Change History (7)

Changed 6 years ago by Vasilij Schneidermann

Attachment: xdg.scm added

comment:1 Changed 6 years ago by Vasilij Schneidermann

comment:2 Changed 5 years ago by sjamaan

Milestone: someday5.2
Version: 5.05.0.0

Let's take a look at this soonish. Maybe for 5.1, but I don't want to overload that milestone so I'm putting it on 5.2.

comment:3 Changed 5 years ago by Kooda

The patch for this has already been submitted to chicken-hackers:

http://lists.nongnu.org/archive/html/chicken-hackers/2018-08/msg00009.html

comment:4 Changed 5 years ago by sjamaan

Version: 5.0.05.0

comment:5 Changed 5 years ago by sjamaan

Milestone: 5.25.1

comment:6 Changed 5 years ago by Kooda

Resolution: fixed
Status: newclosed

Patch pushed as d902e1cfd6d8d9ca8841bc83f30e8547c9f32c2f

Note: See TracTickets for help on using tickets.