git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.
Previous: Astril HayatoNext: Astril Hayato
Message 2 of 3 in “gitk: Comply with XDG base directory specification”
  1. gitk: Comply with XDG base directory specificationAstril Hayato, Dec 13, 2013
  2. Paul MackerrasJan 21, 2014
  3. Astril HayatoJan 21, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.