Skip to content
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

Support XDG Base Directory Specification #3

Open
erikw opened this issue Oct 28, 2021 · 0 comments · May be fixed by #5
Open

Support XDG Base Directory Specification #3

erikw opened this issue Oct 28, 2021 · 0 comments · May be fixed by #5

Comments

@erikw
Copy link

erikw commented Oct 28, 2021

First of all, thanks for this really great shell enhancer. I use it every day!

Background

Lately the XDG Base Directory Specification has been gaining quite a steady popularity, even though it's been around for a long time already. The basic idea is to standardize where programs put their files e.g. all config files in a certain directory. The benefits for end users are many, including:

  • No polluted $HOME/
  • Can easily grep for only config files in $XDG_CONFIG_HOME
  • Can decide where to store configurations in more complex setups (multi system setup e.g.)
  • Easily wipe state by removing $XDG_STATE_HOME or even $XDG_DATA_HOME, but without destroying and configuration files.

The first point is maybe what most end users enjoy the most though.

How

Specifically for this project, this should mean that the search for the configuration file should be done like:

  1. If $CD_BOOKMARK_FILE is set, use this directly
  2. NEW If $XDG_CONFIG_HOME is set, look for $XDG_CONFIG_HOME/cd-bookmark/bookmarks
  3. NEW elseIf $XDG_CONFIG_HOME is unset, use the default value for the envvar which is $HOME/.config. Thus, the config file to look for is at $HOME/.config/cd-bookmark/bookmarks
  4. else fall-back to current legacy $HOME/.cdbookmark

The first two new steps to can be codifed in bash like:
${XDG_CONFIG_HOME:-$HOME/.config}/cd-bookmark/bookmarks

erikw added a commit to erikw/cd-bookmark that referenced this issue Nov 4, 2021
Backwards compatible change that supports storing the bookmarks in
$XDG_CONFIG_HOME/cd-bookmarks.

* If the user as set the previously
existing $CD_BOOKMARK_FILE, this is always overriding.
* If the user has created the directory/file
  $XDG_CONFIG_HOME/cd-bookmarks/(bookmarks), use this
* Else fall back to old default $HOME/.cdbookmark

Fixes mollifier#3
@erikw erikw linked a pull request Nov 4, 2021 that will close this issue
erikw added a commit to erikw/cd-bookmark that referenced this issue Nov 4, 2021
Backwards compatible change that supports storing the bookmarks in
$XDG_CONFIG_HOME/cd-bookmarks.

* If the user as set the previously
existing $CD_BOOKMARK_FILE, this is always overriding.
* If the user has created the directory/file
  $XDG_CONFIG_HOME/cd-bookmarks/(bookmarks), use this
* Else fall back to old default $HOME/.cdbookmark

Fixes mollifier#3
erikw added a commit to erikw/cd-bookmark that referenced this issue Nov 4, 2021
Backwards compatible change that supports storing the bookmarks in
$XDG_CONFIG_HOME/cd-bookmarks.

* If the user as set the previously
existing $CD_BOOKMARK_FILE, this is always overriding.
* If the user has created the directory/file
  $XDG_CONFIG_HOME/cd-bookmarks/(bookmarks), use this
* Else fall back to old default $HOME/.cdbookmark

Fixes mollifier#3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant