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.
This commit is contained in:
Alexander Gehrke 2013-08-07 16:08:48 +02:00 committed by Max Kellermann
parent 3f846cf6b8
commit 87b7328463
4 changed files with 15 additions and 8 deletions

View File

@ -196,9 +196,9 @@ Run
$ mpd <config file> $ mpd <config file>
First default is ~/.mpdconf then ~/.mpd/mpd.conf then /etc/mpd.conf. If First default is $XDG_CONFIG_HOME/mpd/mpd.conf then ~/.mpdconf then
neither of these exist a mpd configuration file must be specified at ~/.mpd/mpd.conf then /etc/mpd.conf. If neither of these exist a mpd
runtime. configuration file must be specified at runtime.
A sample config file is included with the source of MPD, mpdconf.example. A sample config file is included with the source of MPD, mpdconf.example.

View File

@ -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 retrieved. Player control, info retrieval, and playlist management can all be
managed remotely. managed remotely.
MPD searches for a config file in \fB~/.mpdconf\fP then \fB/etc/mpd.conf\fP or MPD searches for a config file in \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP then
uses CONF_FILE. \fB~/.mpdconf\fP then \fB/etc/mpd.conf\fP or uses CONF_FILE.
Read more about MPD at <\fBhttp://www.musicpd.org/\fP>. Read more about MPD at <\fBhttp://www.musicpd.org/\fP>.
.SH OPTIONS .SH OPTIONS

View File

@ -3,8 +3,9 @@
mpd.conf \- Music Player Daemon configuration file mpd.conf \- Music Player Daemon configuration file
.SH DESCRIPTION .SH DESCRIPTION
\fBmpd.conf\fP is the configuration file for mpd(1). If not specified on the \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 command line, MPD first searches for it at \fB$XDG_CONFIG_HOME/mpd/mpd.conf\fP
\fB~/.mpd/mpd.conf\fP and then in \fB/etc/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 Lines beginning with a "#" character are comments. All other non-empty lines
specify parameters and their values. These lines contain the parameter name specify parameters and their values. These lines contain the parameter name

View File

@ -54,6 +54,7 @@
#else /* G_OS_WIN32 */ #else /* G_OS_WIN32 */
#define USER_CONFIG_FILE_LOCATION1 ".mpdconf" #define USER_CONFIG_FILE_LOCATION1 ".mpdconf"
#define USER_CONFIG_FILE_LOCATION2 ".mpd/mpd.conf" #define USER_CONFIG_FILE_LOCATION2 ".mpd/mpd.conf"
#define USER_CONFIG_FILE_LOCATION_XDG "mpd/mpd.conf"
#endif #endif
static GQuark static GQuark
@ -219,7 +220,12 @@ parse_cmdline(int argc, char **argv, struct options *options,
return ReadConfigFile(path, error_r); return ReadConfigFile(path, error_r);
} }
#else /* G_OS_WIN32 */ #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); USER_CONFIG_FILE_LOCATION1);
if (!path.IsNull() && FileExists(path)) if (!path.IsNull() && FileExists(path))
return ReadConfigFile(path, error_r); return ReadConfigFile(path, error_r);