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

Respect XDG Base Directory Specification #172

Open
hyperupcall opened this issue Jul 15, 2021 · 2 comments
Open

Respect XDG Base Directory Specification #172

hyperupcall opened this issue Jul 15, 2021 · 2 comments

Comments

@hyperupcall
Copy link

hyperupcall commented Jul 15, 2021

Hello!

Right now, DEFAULT_STORE has a default value of ~/.git-stats while CONFIG_PATH has a default value of ~/.git-stats-config.js

I would prefer if git-stats did not put the files in the home directory - I propose using the XDG Base Directory Specification to determine the location defaults. Many modern applications today place their configuration and data files in compliance with this standard, making it easy to backup homogeneous (with respect to their type) data or keep the home directory tidy.

This would mean

  • .git-stats would default to $XDG_STATE_HOME/git-stats/git-stats.json
  • .git-stats-config.js would default to $XDG_CONFIG_HOME/git-stats/git-stats-config.js

Per the specification, if the environment variables $XDG_STATE_HOME or $XDG_CONFIG_HOME do not exist, then they default to ~/.local/state and ~/.config respectively

To ensure that the changes are backwards compatible, the code can check if ~/.git-stats or ~/.git-stats-config.js exist. If a particular one does not exist in the home folder, then the new changes take effect for that particular file

@ericraio
Copy link

Would appreciate if this package respected this specification.

@ericraio
Copy link

I did a quick implementation of this in my fork, it works but ideally @hyperupcall has the better approach for fallback support if the environment variable is missing or if the directory is missing.

https://github.com/ericraio/git-stats/blob/15b41aed4af78ab9d537ece60560ac046283ce05/lib/index.js#L20-L30

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

No branches or pull requests

2 participants