From: Astril Hayato <astrilhayato@gmail.com>
To: git@vger.kernel.org
Cc: paulus@samba.org, Astril Hayato <astrilhayato@gmail.com>
Subject: [PATCH v2] gitk: Comply with XDG base directory specification
Date: Tue, 21 Jan 2014 19:10:16 +0000 [thread overview]
Message-ID: <1390331416-4662-1-git-send-email-astrilhayato@gmail.com> (raw)
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.
Signed-off-by: Astril Hayato <astrilhayato@gmail.com>
---
gitk | 35 ++++++++++++++++++++++++++++++-----
1 file changed, 30 insertions(+), 5 deletions(-)
diff --git a/gitk b/gitk
index 33c3a6c..d592d7e 100755
--- a/gitk
+++ b/gitk
@@ -2761,14 +2761,17 @@ proc savestuff {w} {
global linkfgcolor circleoutlinecolor
global autoselect autosellen extdifftool perfile_attrs markbgcolor use_ttk
global hideremotes want_ttk maxrefs
+ global config_file config_file_tmp
if {$stuffsaved} return
if {![winfo viewable .]} return
catch {
- if {[file exists ~/.gitk-new]} {file delete -force ~/.gitk-new}
- set f [open "~/.gitk-new" w]
+ if {[file exists $config_file_tmp]} {
+ file delete -force $config_file_tmp
+ }
+ set f [open $config_file_tmp w]
if {$::tcl_platform(platform) eq {windows}} {
- file attributes "~/.gitk-new" -hidden true
+ file attributes $config_file_tmp -hidden true
}
puts $f [list set mainfont $mainfont]
puts $f [list set textfont $textfont]
@@ -2845,7 +2848,7 @@ proc savestuff {w} {
}
puts $f "}"
close $f
- file rename -force "~/.gitk-new" "~/.gitk"
+ file rename -force $config_file_tmp $config_file
}
set stuffsaved 1
}
@@ -12058,7 +12061,29 @@ 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]} {
+ # for backward compatibility use the old config file if it exists
+ if {[file exists "~/.gitk"]} {
+ set config_file "~/.gitk"
+ set config_file_tmp "~/.gitk-tmp"
+ } elseif {![file exists [file dirname $config_file]]} {
+ file mkdir [file dirname $config_file]
+ }
+ }
+ source $config_file
+}
parsefont mainfont $mainfont
eval font create mainfont [fontflags mainfont]
--
1.8.5.3
next reply other threads:[~2014-01-21 19:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-21 19:10 Astril Hayato [this message]
2014-01-22 11:08 ` [PATCH v2] gitk: Comply with XDG base directory specification Paul Mackerras
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1390331416-4662-1-git-send-email-astrilhayato@gmail.com \
--to=astrilhayato@gmail.com \
--cc=git@vger.kernel.org \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).