igrigorik / vimgolf

Real Vim ninjas count every keystroke - do you?
http://www.vimgolf.com/
MIT License
672 stars 65 forks source link

Support XDG base directory specification #344

Open yochem opened 2 years ago

yochem commented 2 years ago

Closes #285.

Support the XDG base directory specification by moving the following files:

$HOME/.vimgolf/config.yaml{$XDG_CONFIG_HOME OR $HOME/.config}/vimgolf/config.yaml $HOME/.vimgolf/put/*{$XDG_CACHE_HOME OR $HOME/.cache}/vimgolf/*

It will automatically do this when the Config.load method is called. If the config in the old directory (~/.vimgolf/config.yaml) exists, grab the key from there, remove ~/.vimgolf and create the two xdg directories from above. When installing vimgolf fresh it will just make the two xdg directories and use those.

P.S. I'm not used to ruby programming, and therefor not aware of standard ruby code practices. Please let me know if some parts can be written more 'ruby-like' or in another way refactored.

P.P.S. I could also use FileUtils.rm_rf("#{ENV['HOME']}/.vimgolf"), which is less code but might be less secure (it follows symlinks).