IonicaBizau / git-stats

🍀 Local git statistics including GitHub-like contributions calendars.
MIT License
6.42k stars 183 forks source link

Respect XDG Base Directory Specification #172

Open hyperupcall opened 3 years ago

hyperupcall commented 3 years ago

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

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 commented 1 year ago

Would appreciate if this package respected this specification.

ericraio commented 1 year ago

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

mayurankv commented 5 months ago

I too would love this!