From ae5517b0b3a01c4e3e678f77d85f30b7ac3f3273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Quelin?= Date: Wed, 14 Jan 2009 14:27:17 +0100 Subject: allow ~/.mpd/mpd.conf as alternate config file mpd uses some additional files to work, such as pid_file, state_file, db_file, etc. when running mpd as non-root user, it is often that those files end in ~/.mpd in that case, we end up with 2 entries in a user's home, .mpdconf and .mpd - which clutters homedirs. this patch allows ~/.mpd/mpd.conf as an alternative to ~/.mpdconf, allowing for a cleaner homedir --- src/cmdline.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/cmdline.c') diff --git a/src/cmdline.c b/src/cmdline.c index 48c1e87e6..14a22da34 100644 --- a/src/cmdline.c +++ b/src/cmdline.c @@ -33,7 +33,8 @@ #include #define SYSTEM_CONFIG_FILE_LOCATION "/etc/mpd.conf" -#define USER_CONFIG_FILE_LOCATION ".mpdconf" +#define USER_CONFIG_FILE_LOCATION1 ".mpdconf" +#define USER_CONFIG_FILE_LOCATION2 ".mpd/mpd.conf" G_GNUC_NORETURN static void version(void) @@ -134,16 +135,22 @@ void parseOptions(int argc, char **argv, Options *options) if (argc <= 1) { /* default configuration file path */ - char *path; - - path = g_build_filename(g_get_home_dir(), - USER_CONFIG_FILE_LOCATION, NULL); - if (g_file_test(path, G_FILE_TEST_IS_REGULAR)) - readConf(path); + char *path1; + char *path2; + + path1 = g_build_filename(g_get_home_dir(), + USER_CONFIG_FILE_LOCATION1, NULL); + path2 = g_build_filename(g_get_home_dir(), + USER_CONFIG_FILE_LOCATION2, NULL); + if (g_file_test(path1, G_FILE_TEST_IS_REGULAR)) + readConf(path1); + else if (g_file_test(path2, G_FILE_TEST_IS_REGULAR)) + readConf(path2); else if (g_file_test(SYSTEM_CONFIG_FILE_LOCATION, G_FILE_TEST_IS_REGULAR)) readConf(SYSTEM_CONFIG_FILE_LOCATION); - g_free(path); + g_free(path1); + g_free(path2); } else if (argc == 2) { /* specified configuration file */ readConf(argv[1]); -- cgit v1.2.3