X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=cli.c;h=fe999708a254fbf7cd43bc74935b768ecd3511f4;hb=3d3ff6257506378fb436bfe8b7bcd4d2deaafb5e;hp=043ba1a05d90063093c3d50c1b07916b3a6664e9;hpb=8e57ddf6b61e9e95e1f319b1def18789f19f9ee1;p=project%2Fuci.git diff --git a/cli.c b/cli.c index 043ba1a..fe99970 100644 --- a/cli.c +++ b/cli.c @@ -1,4 +1,5 @@ /* + * cli - Command Line Interface for the Unified Configuration Interface * Copyright (C) 2008 Felix Fietkau * * This program is free software; you can redistribute it and/or modify @@ -11,31 +12,119 @@ * GNU General Public License for more details. */ #include +#include #include +#include #include "uci.h" -static const char *appname = "uci"; +#define MAX_ARGS 4 /* max command line arguments for batch mode */ + +static const char *delimiter = " "; +static const char *appname; +static enum { + CLI_FLAG_MERGE = (1 << 0), + CLI_FLAG_QUIET = (1 << 1), + CLI_FLAG_NOCOMMIT = (1 << 2), + CLI_FLAG_BATCH = (1 << 3), +} flags; + +static FILE *input; static struct uci_context *ctx; enum { + /* section cmds */ CMD_GET, CMD_SET, - CMD_DEL + CMD_ADD_LIST, + CMD_DEL, + CMD_RENAME, + CMD_REVERT, + /* package cmds */ + CMD_SHOW, + CMD_CHANGES, + CMD_EXPORT, + CMD_COMMIT, + /* other cmds */ + CMD_ADD, + CMD_IMPORT, + CMD_HELP, }; -static void uci_usage(int argc, char **argv) +static int uci_cmd(int argc, char **argv); + +static void uci_usage(void) { fprintf(stderr, "Usage: %s [] []\n\n" "Commands:\n" - "\texport []\n" - "\tshow [[.
[.