diff options
author | Alexander Gehrke <crater@qwertyuiop.de> | 2013-08-07 16:08:48 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-08-07 18:22:27 +0200 |
commit | 87b732846388d3c4a2d755863df4328a6c08041e (patch) | |
tree | 7799988e59a800aeb2de278ce9fbfcb5ffe0b361 | |
parent | 3f846cf6b86d0b9f0fe500b2a08d67672ed58169 (diff) | |
download | mpd-87b732846388d3c4a2d755863df4328a6c08041e.tar.gz mpd-87b732846388d3c4a2d755863df4328a6c08041e.tar.xz mpd-87b732846388d3c4a2d755863df4328a6c08041e.zip |
CommandLine.cxx: look for config file in XDG_CONFIG_HOME too
Look for "$XDG_CONFIG_HOME/mpd/mpd.conf", similar to where mpd looks
for the file under Windows.
-rw-r--r-- | INSTALL | 6 | ||||
-rw-r--r-- | doc/mpd.1 | 4 | ||||
-rw-r--r-- | doc/mpd.conf.5 | 5 | ||||
-rw-r--r-- | src/CommandLine.cxx | 8 |
4 files changed, 15 insertions, 8 deletions
@@ -196,9 +196,9 @@ Run $ mpd <config file> -First default is ~/.mpdconf then ~/.mpd/mpd.conf then /etc/mpd.conf. If -neither of these exist a mpd configuration file must be specified at -runtime. +First default is $XDG_CONFIG_HOME/mpd/mpd.conf then ~/.mpdconf then +~/.mpd/mpd.conf then /etc/mpd.conf. If neither of these exist a mpd +configuration file must be specified at runtime. A sample config file is included with the source of MPD, mpdconf.example. @@ -12,8 +12,8 @@ stores info about all available music, and this info can be easily searched and retrieved. Player control, info retrieval, and playlist management can all be managed remotely. -MPD searches for a config file in \fB~/.mpdconf\fP then \fB/etc/mpd.conf\fP or -uses CONF_FILE. +MPD searches for a config file in \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP then +\fB~/.mpdconf\fP then \fB/etc/mpd.conf\fP or uses CONF_FILE. Read more about MPD at <\fBhttp://www.musicpd.org/\fP>. .SH OPTIONS diff --git a/doc/mpd.conf.5 b/doc/mpd.conf.5 index 62f5565e1..d441c0d1b 100644 --- a/doc/mpd.conf.5 +++ b/doc/mpd.conf.5 @@ -3,8 +3,9 @@ mpd.conf \- Music Player Daemon configuration file .SH DESCRIPTION \fBmpd.conf\fP is the configuration file for mpd(1). If not specified on the -command line, MPD first searches for it at \fB~/.mpdconf\fP then at -\fB~/.mpd/mpd.conf\fP and then in \fB/etc/mpd.conf\fP. +command line, MPD first searches for it at \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP +then at \fB~/.mpdconf\fP then at \fB~/.mpd/mpd.conf\fP and then in +\fB/etc/mpd.conf\fP. Lines beginning with a "#" character are comments. All other non-empty lines specify parameters and their values. These lines contain the parameter name diff --git a/src/CommandLine.cxx b/src/CommandLine.cxx index a62ea370e..89575a13f 100644 --- a/src/CommandLine.cxx +++ b/src/CommandLine.cxx @@ -54,6 +54,7 @@ #else /* G_OS_WIN32 */ #define USER_CONFIG_FILE_LOCATION1 ".mpdconf" #define USER_CONFIG_FILE_LOCATION2 ".mpd/mpd.conf" +#define USER_CONFIG_FILE_LOCATION_XDG "mpd/mpd.conf" #endif static GQuark @@ -219,7 +220,12 @@ parse_cmdline(int argc, char **argv, struct options *options, return ReadConfigFile(path, error_r); } #else /* G_OS_WIN32 */ - Path path = PathBuildChecked(Path::FromUTF8(g_get_home_dir()), + Path path = PathBuildChecked(Path::FromUTF8(g_get_user_config_dir()), + USER_CONFIG_FILE_LOCATION_XDG); + if (!path.IsNull() && FileExists(path)) + return ReadConfigFile(path, error_r); + + path = PathBuildChecked(Path::FromUTF8(g_get_home_dir()), USER_CONFIG_FILE_LOCATION1); if (!path.IsNull() && FileExists(path)) return ReadConfigFile(path, error_r); |