Re: [PATCH] gitk: Comply with XDG base directory specification
- From
Paul Mackerras <paulus@samba.org>
- Date
- Jan 21, 2014, 11:10 UTC
- Message-ID
- <20140121111041.GC8265@iris.ozlabs.ibm.com>
- In-Reply-To
- <1386963996-5481-1-git-send-email-astrilhayato@gmail.com>
On Fri, Dec 13, 2013 at 07:46:36PM +0000, Astril Hayato wrote:
Show 6 quoted lines
> Write the gitk config data to $XDG_CONFIG_HOME/git/gitk ($HOME/.config/git/gitk > by default) in line with the XDG specification. This makes it consistent with > git which also follows the spec. > > If $HOME/.gitk already exists use that for backward compatibility, so only new > installations are affected.
Sounds reasonable...
Show 23 quoted lines
> @@ -12058,7 +12061,27 @@ namespace import ::msgcat::mc
> ## And eventually load the actual message catalog
> ::msgcat::mcload $gitk_msgsdir
>
> -catch {source ~/.gitk}
> +catch {
> + # follow the XDG base directory specification by default. See
> + # http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
> + if {[info exists env(XDG_CONFIG_HOME)] && $env(XDG_CONFIG_HOME) ne ""} {
> + # XDG_CONFIG_HOME environment variable is set
> + set config_file [file join $env(XDG_CONFIG_HOME) git gitk]
> + set config_file_tmp [file join $env(XDG_CONFIG_HOME) git gitk-tmp]
> + } else {
> + # default XDG_CONFIG_HOME
> + set config_file "~/.config/git/gitk"
> + set config_file_tmp "~/.config/git/gitk-tmp"
> + }
> + if {![file exists $config_file]} {
> + if {![file exists [file dirname $config_file]]} {
> + file mkdir [file dirname $config_file]
> + }
> + # for backward compatability use the old config file if it exists
> + if {[file exists "~/.gitk"]} {set config_file "~/.gitk"}Don't we need to set config_file_tmp here too?
And, do we really want to create the ~/.config/git directory if we are using the old-style ~/.gitk as the config file?
Paul.