summaryrefslogtreecommitdiffstats
path: root/eurephiadm
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-04 11:16:21 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-04 11:16:21 +0100
commit50b32828f5a6dad74c389fd8545b9513791c9e94 (patch)
treea4a811d44dd5e850e985f7e7254935087481c02e /eurephiadm
parent173446b95a879c5963cf56b4970d65b6a3078c26 (diff)
downloadeurephia-50b32828f5a6dad74c389fd8545b9513791c9e94.tar.gz
eurephia-50b32828f5a6dad74c389fd8545b9513791c9e94.tar.xz
eurephia-50b32828f5a6dad74c389fd8545b9513791c9e94.zip
Implemented argparser in edit_config.c
Diffstat (limited to 'eurephiadm')
-rw-r--r--eurephiadm/commands/edit_config.c39
1 files changed, 33 insertions, 6 deletions
diff --git a/eurephiadm/commands/edit_config.c b/eurephiadm/commands/edit_config.c
index e5a5f63..94865a6 100644
--- a/eurephiadm/commands/edit_config.c
+++ b/eurephiadm/commands/edit_config.c
@@ -32,19 +32,46 @@
#include <eurephiadb_session_struct.h>
#include <eurephiadb_driver.h>
+#define MODULE "eurephiadm::config"
+#include "../argparser.h"
+
int cmd_EditConfig(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) {
- int rc = 0;
+ int rc = 0, i = 0;
+ e_options editargs[] = {
+ {"--set", "-s", 2},
+ {"--delete", "-D", 1},
+ {NULL, NULL, 0}
+ };
assert((ctx != NULL) && (ctx->dbc != NULL) && (ctx->dbc->config != NULL));
- if( strcmp(argv[1], "set") == 0 ) {
- rc = eDBadminConfigSet(ctx, argv[2], argv[3]);
- } else if( strcmp(argv[1], "delete") == 0 ) {
- rc = eDBadminConfigDelete(ctx, argv[2]);
- } else {
+ for( i = 1; i < argc; i++ ) {
+ if( *argv[i] != '-' ) {
+ break;
+ }
+ switch( eurephia_getopt(i, argc, argv, editargs) ) {
+ case 's':
+ fprintf(stderr, "Setting config parameter '%s' to '%s'\n", optargs[0], optargs[1]);
+ rc = eDBadminConfigSet(ctx, optargs[0], optargs[1]);
+ break;
+
+ case 'D':
+ fprintf(stderr, "Deleting config parameter '%s'\n", optargs[0]);
+ rc = eDBadminConfigDelete(ctx, optargs[0]);
+ break;
+
+ default:
+ return 1;
+ }
+ }
+
+ if( argc == 2 ) {
char *val = eGet_value(ctx->dbc->config, argv[1]);
fprintf(stdout, "%s\n", (val != NULL ? val : ""));
rc = 1;
+ } else if( argc == 1 ){
+ fprintf(stderr, "No config action performed\n");
+ rc = 1;
}
if( rc != 1 ) {