From 84bbbb91c9154ca0b1c295eb7d1aa0de59450764 Mon Sep 17 00:00:00 2001 From: gramanas Date: Mon, 19 Nov 2018 01:54:32 +0200 Subject: Better error report on add --- src/actions.h | 1 + src/add.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/actions.h b/src/actions.h index 60b9645..1b7ef05 100644 --- a/src/actions.h +++ b/src/actions.h @@ -27,6 +27,7 @@ CK_ACTIONS enum AddOptErrors { ADD_NO_ERR = 0, ADD_ERR_WRONG_CONFIG, + ADD_ERR_LINK_CONFIG, ADD_ERR_WRONG_FLAGS }; typedef enum AddOptErrors AddOptErr; diff --git a/src/add.c b/src/add.c index 9959204..574ac73 100644 --- a/src/add.c +++ b/src/add.c @@ -241,11 +241,15 @@ static AddOpt add_make_options(cklist *args) { }; list_next(args); - if (!util_is_file_rw(list_get(args)) - || !util_is_file_link(list_get(args))) { + strcpy(addOpt.confPath, list_get(args)); + if (!util_is_file_rw(addOpt.confPath)) { addOpt.err = ADD_ERR_WRONG_CONFIG; return addOpt; } + if (!util_is_file_link(addOpt.confPath)) { + addOpt.err = ADD_ERR_LINK_CONFIG; + return addOpt; + } realpath(list_get(args), addOpt.confPath); while (list_next(args)) { @@ -304,8 +308,11 @@ int run_ADD(UserOpt * opt, Conf *conf) { switch (addOpt.err) { case ADD_NO_ERR: break; + case ADD_ERR_LINK_CONFIG: + ERR("%s is a link.", addOpt.confPath); + goto error; case ADD_ERR_WRONG_CONFIG: - ERR("The config file specified doesn't exist or is a link."); + ERR("%s doesn't exist.", addOpt.confPath); goto error; case ADD_ERR_WRONG_FLAGS: ERR("Flags are: -s for secret and -p for primary."); -- cgit v1.2.3