Add special non-interactive mode for the embedded sqlite3 engine accessible via "-ni"
Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
parent
ade6e67ae2
commit
9b19917796
34
src/args.c
34
src/args.c
|
@ -248,6 +248,21 @@ void parse_args(int argc, char* argv[])
|
|||
argv2[5 + j] = argv[i + 2 + j];
|
||||
exit(sqlite3_shell_main(argc2, argv2));
|
||||
}
|
||||
// Special non-interative mode
|
||||
else if(i+1 < argc && strcmp(argv[i+1], "-ni") == 0)
|
||||
{
|
||||
int argc2 = argc - i + 4 - 2;
|
||||
char **argv2 = calloc(argc2, sizeof(char*));
|
||||
argv2[0] = argv[0]; // Application name
|
||||
argv2[1] = (char*)"-batch";
|
||||
argv2[2] = (char*)"-init";
|
||||
argv2[3] = (char*)"/dev/null";
|
||||
// i = "sqlite3"
|
||||
// i+1 = "-h"
|
||||
for(int j = 0; j < argc - i - 2; j++)
|
||||
argv2[4 + j] = argv[i + 2 + j];
|
||||
exit(sqlite3_shell_main(argc2, argv2));
|
||||
}
|
||||
else
|
||||
exit(sqlite3_shell_main(argc - i, &argv[i]));
|
||||
}
|
||||
|
@ -511,19 +526,30 @@ void parse_args(int argc, char* argv[])
|
|||
printf(" the script.\n\n");
|
||||
|
||||
printf("%sEmbedded SQLite3 shell:%s\n", yellow, normal);
|
||||
printf("\t%ssql %s[-h]%s, %ssqlite3 %s[-h]%s FTL's SQLite3 shell\n", green, purple, normal, green, purple, normal);
|
||||
printf("\t%s-h%s starts a special %shuman-readable mode%s\n\n", purple, normal, bold, normal);
|
||||
printf("\t%ssql%s, %ssqlite3%s FTL's SQLite3 shell\n", green, normal, green, normal);
|
||||
|
||||
printf(" Usage: %spihole-FTL sqlite3 %s[-h] %s[OPTIONS] [FILENAME] [SQL]%s\n\n", green, purple, cyan, normal);
|
||||
printf(" Usage: %spihole-FTL sqlite3 %s[OPTIONS] [FILENAME] [SQL]%s\n\n", green, cyan, normal);
|
||||
printf(" Options:\n\n");
|
||||
printf(" - %s[OPTIONS]%s is an optional set of options. All available\n", cyan, normal);
|
||||
printf(" options can be found in %spihole-FTL sqlite3 --help%s\n", green, normal);
|
||||
printf(" options can be found in %spihole-FTL sqlite3 --help%s.\n", green, normal);
|
||||
printf(" The first option can be either %s-h%s or %s-ni%s, see below.\n", purple, normal, purple, normal);
|
||||
printf(" - %s[FILENAME]%s is the optional name of an SQLite database.\n", cyan, normal);
|
||||
printf(" A new database is created if the file does not previously\n");
|
||||
printf(" exist. If this argument is omitted, SQLite3 will use a\n");
|
||||
printf(" transient in-memory database instead.\n");
|
||||
printf(" - %s[SQL]%s is an optional SQL statement to be executed. If\n", cyan, normal);
|
||||
printf(" omitted, an interactive shell is started instead.\n\n");
|
||||
printf(" There are two special %spihole-FTL sqlite3%s mode switches:\n", green, normal);
|
||||
printf(" %s-h%s %shuman-readable%s mode:\n", purple, normal, bold, normal);
|
||||
printf(" In this mode, the output of the shell is formatted in\n");
|
||||
printf(" a human-readable way. This is especially useful for\n");
|
||||
printf(" debugging purposes. %s-h%s is a shortcut for\n", purple, normal);
|
||||
printf(" %spihole-FTL sqlite3 %s-column -header -nullvalue '(null)'%s\n\n", green, purple, normal);
|
||||
printf(" %s-ni%s %snon-interative%s mode\n", purple, normal, bold, normal);
|
||||
printf(" In this mode, batch mode is enforced and any possibly\n");
|
||||
printf(" existing .sqliterc file is ignored. %s-ni%s is a shortcut\n", purple, normal);
|
||||
printf(" for %spihole-FTL sqlite3 %s-batch -init /dev/null%s\n\n", green, purple, normal);
|
||||
printf(" Usage: %spihole-FTL sqlite3 %s-ni %s[OPTIONS] [FILENAME] [SQL]%s\n\n", green, purple, cyan, normal);
|
||||
|
||||
printf("%sEmbedded dnsmasq options:%s\n", yellow, normal);
|
||||
printf("\t%sdnsmasq-test%s Test syntax of dnsmasq's config\n", green, normal);
|
||||
|
|
Loading…
Reference in New Issue