X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=adu.c;h=7d8c9abd0191b6d4c84036bcc70e7e91d2cf03f3;hp=68a48deea7a8a186511a1023fc7ee3bdba044977;hb=1136bdfc82272850474eacba37cf87d01f6a1b7f;hpb=5a0a4bf7efefacd4cedbae61c10710af5339cc75 diff --git a/adu.c b/adu.c index 68a48de..7d8c9ab 100644 --- a/adu.c +++ b/adu.c @@ -259,6 +259,27 @@ static void print_complete_help_and_die(void) exit(EXIT_FAILURE); } +static void get_database_dir_or_die(void) +{ + char *tmp; + + if (conf.database_dir_given) + tmp = adu_strdup(conf.database_dir_arg); + else + tmp = make_message("%s%s", + conf.database_root_arg, conf.base_dir_arg); + /* + * As we change the cwd during database creation, database_dir + * must be an absolute path. + */ + database_dir = absolute_path(tmp); + free(tmp); + if (database_dir) + return; + EMERG_LOG("failed to get absolute path of database dir\n"); + exit(EXIT_FAILURE); +} + /** * The main function of adu. * @@ -300,12 +321,7 @@ int main(int argc, char **argv) ret = init_signals(); if (ret < 0) goto out; - ret = -E_SYNTAX; - if (conf.database_dir_given) - database_dir = adu_strdup(conf.database_dir_arg); - else - database_dir = make_message("%s%s", - conf.database_root_arg, conf.base_dir_arg); + get_database_dir_or_die(); if (conf.select_given) ret = com_select(); else if (conf.create_given)