#include "adu.h"
+#include "format.h"
+#include "select.h"
#include "string.h"
#include "error.h"
#include "cmdline.h"
-#include "select.cmdline.h"
struct interactive_command {
const char *name;
const char *desc;
};
+static struct uid_range *admissible_uids;
+static struct format_info *fi;
+
#define INTERACTIVE_COMMANDS \
INTERACTIVE_COMMAND(dump, "dump the current configuration") \
INTERACTIVE_COMMAND(set, "change the current configuration") \
INTERACTIVE_COMMAND(reset, "reset configuration to defaults") \
INTERACTIVE_COMMAND(help, "show list of commands and one-line descriptions") \
+ INTERACTIVE_COMMAND(run, "start the query according to the current options")
#define INTERACTIVE_COMMAND(name, desc) \
return fgets(line, size, stdin)? 1 : -1;
}
+static int icom_run(__a_unused char *line)
+{
+ return run_select_query(admissible_uids, fi);
+}
+
static int icom_help(__a_unused char *line)
{
struct interactive_command *c;
return 1;
}
-static struct uid_range *admissible_uids;
-
static int icom_set(char *line)
{
struct select_cmdline_parser_params params = {
.check_ambiguity = 0,
.print_errors = 1
};
- if (select_cmdline_parser_string_ext(line, &select_conf, "select",
- ¶ms))
- return -E_SYNTAX;
- return parse_uid_arg(select_conf.uid_arg, &admissible_uids);
+ return parse_select_options(line, ¶ms, &admissible_uids, &fi);
}
static int icom_dump(__a_unused char *line)
{
- ERROR_LOG("dump: %s\n", select_conf.format_arg);
select_cmdline_parser_dump(stdout, &select_conf);
return 1;
}
char line[255];
int ret = 1;
+ select_cmdline_parser_init(&select_conf);
while (read_input_line(line, sizeof(line)) >= 0) {
size_t len = strlen(line);
if (!len)