mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-05 04:30:38 +03:00
Command-line shell enhancements: Reorganize the "usage" comment so that
options are in alphabetical order. Add the new "--cmd" option. Allow either "--option" or "-option" for options. FossilOrigin-Name: 9497893b1b9219eac4ec2183bd90b4e4b860d9fe
This commit is contained in:
12
manifest
12
manifest
@@ -1,5 +1,5 @@
|
|||||||
C More\sstructure\spacking\sfor\ssmaller\sobjects\sand\sless\smemory\susage.
|
C Command-line\sshell\senhancements:\s\sReorganize\sthe\s"usage"\scomment\sso\sthat\noptions\sare\sin\salphabetical\sorder.\s\sAdd\sthe\snew\s"--cmd"\soption.\s\sAllow\neither\s"--option"\sor\s"-option"\sfor\soptions.
|
||||||
D 2012-02-02T21:02:43.362
|
D 2012-02-07T14:13:50.240
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
|
F Makefile.in 3f79a373e57c3b92dabf76f40b065e719d31ac34
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@@ -181,7 +181,7 @@ F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
|
|||||||
F src/resolve.c 3d3e80a98f203ac6b9329e9621e29eda85ddfd40
|
F src/resolve.c 3d3e80a98f203ac6b9329e9621e29eda85ddfd40
|
||||||
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
F src/rowset.c 69afa95a97c524ba6faf3805e717b5b7ae85a697
|
||||||
F src/select.c 232283a2e60d91cbd9a5ddf2f6f7ecf53d590075
|
F src/select.c 232283a2e60d91cbd9a5ddf2f6f7ecf53d590075
|
||||||
F src/shell.c 60d147c2411dd2d79a5151cfb9a068de87c7babe
|
F src/shell.c aa28f117033ba3e44b5eaaf2ad572222bcdfd66e
|
||||||
F src/sqlite.h.in 371c30e4be94b9b0ea6400ed66663fcf8e891eb4
|
F src/sqlite.h.in 371c30e4be94b9b0ea6400ed66663fcf8e891eb4
|
||||||
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
|
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
|
||||||
F src/sqliteInt.h 736f3a7748434200db7a9e0a352b67d1b8759e0a
|
F src/sqliteInt.h 736f3a7748434200db7a9e0a352b67d1b8759e0a
|
||||||
@@ -989,7 +989,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
|
|||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
|
F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
|
||||||
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
|
||||||
P 21695c3476804477cb378b5a643196380e7e2281
|
P f14e7f29ff7f2d7706dc3cdd715e103e04ba0ef1
|
||||||
R 160b1d93d54df79cdae4b500d4010792
|
R 0c10dce0f67dfacb6b037220cf7eabfd
|
||||||
U drh
|
U drh
|
||||||
Z a82d6bb93102b171e9f2e05fe403d0d3
|
Z 0c5db2cd7b6e79afe1cc84f6912b794f
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
f14e7f29ff7f2d7706dc3cdd715e103e04ba0ef1
|
9497893b1b9219eac4ec2183bd90b4e4b860d9fe
|
||||||
64
src/shell.c
64
src/shell.c
@@ -2704,29 +2704,30 @@ static int process_sqliterc(
|
|||||||
** Show available command line options
|
** Show available command line options
|
||||||
*/
|
*/
|
||||||
static const char zOptions[] =
|
static const char zOptions[] =
|
||||||
" -help show this message\n"
|
|
||||||
" -init filename read/process named file\n"
|
|
||||||
" -echo print commands before execution\n"
|
|
||||||
" -[no]header turn headers on or off\n"
|
|
||||||
" -bail stop after hitting an error\n"
|
" -bail stop after hitting an error\n"
|
||||||
" -interactive force interactive I/O\n"
|
|
||||||
" -batch force batch I/O\n"
|
" -batch force batch I/O\n"
|
||||||
" -column set output mode to 'column'\n"
|
" -column set output mode to 'column'\n"
|
||||||
|
" -cmd command run \"command\" before reading stdin\n"
|
||||||
" -csv set output mode to 'csv'\n"
|
" -csv set output mode to 'csv'\n"
|
||||||
|
" -echo print commands before execution\n"
|
||||||
|
" -init filename read/process named file\n"
|
||||||
|
" -[no]header turn headers on or off\n"
|
||||||
|
" -help show this message\n"
|
||||||
" -html set output mode to HTML\n"
|
" -html set output mode to HTML\n"
|
||||||
|
" -interactive force interactive I/O\n"
|
||||||
" -line set output mode to 'line'\n"
|
" -line set output mode to 'line'\n"
|
||||||
" -list set output mode to 'list'\n"
|
" -list set output mode to 'list'\n"
|
||||||
|
#ifdef SQLITE_ENABLE_MULTIPLEX
|
||||||
|
" -multiplex enable the multiplexor VFS\n"
|
||||||
|
#endif
|
||||||
|
" -nullvalue 'text' set text string for NULL values\n"
|
||||||
" -separator 'x' set output field separator (|)\n"
|
" -separator 'x' set output field separator (|)\n"
|
||||||
" -stats print memory stats before each finalize\n"
|
" -stats print memory stats before each finalize\n"
|
||||||
" -nullvalue 'text' set text string for NULL values\n"
|
|
||||||
" -version show SQLite version\n"
|
" -version show SQLite version\n"
|
||||||
" -vfs NAME use NAME as the default VFS\n"
|
" -vfs NAME use NAME as the default VFS\n"
|
||||||
#ifdef SQLITE_ENABLE_VFSTRACE
|
#ifdef SQLITE_ENABLE_VFSTRACE
|
||||||
" -vfstrace enable tracing of all VFS calls\n"
|
" -vfstrace enable tracing of all VFS calls\n"
|
||||||
#endif
|
#endif
|
||||||
#ifdef SQLITE_ENABLE_MULTIPLEX
|
|
||||||
" -multiplex enable the multiplexor VFS\n"
|
|
||||||
#endif
|
|
||||||
;
|
;
|
||||||
static void usage(int showDetail){
|
static void usage(int showDetail){
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
@@ -2789,19 +2790,22 @@ int main(int argc, char **argv){
|
|||||||
char *z;
|
char *z;
|
||||||
if( argv[i][0]!='-' ) break;
|
if( argv[i][0]!='-' ) break;
|
||||||
z = argv[i];
|
z = argv[i];
|
||||||
if( z[0]=='-' && z[1]=='-' ) z++;
|
if( z[1]=='-' ) z++;
|
||||||
if( strcmp(argv[i],"-separator")==0 || strcmp(argv[i],"-nullvalue")==0 ){
|
if( strcmp(z,"-separator")==0
|
||||||
|
|| strcmp(z,"-nullvalue")==0
|
||||||
|
|| strcmp(z,"-cmd")==0
|
||||||
|
){
|
||||||
i++;
|
i++;
|
||||||
}else if( strcmp(argv[i],"-init")==0 ){
|
}else if( strcmp(z,"-init")==0 ){
|
||||||
i++;
|
i++;
|
||||||
zInitFile = argv[i];
|
zInitFile = argv[i];
|
||||||
/* Need to check for batch mode here to so we can avoid printing
|
/* Need to check for batch mode here to so we can avoid printing
|
||||||
** informational messages (like from process_sqliterc) before
|
** informational messages (like from process_sqliterc) before
|
||||||
** we do the actual processing of arguments later in a second pass.
|
** we do the actual processing of arguments later in a second pass.
|
||||||
*/
|
*/
|
||||||
}else if( strcmp(argv[i],"-batch")==0 ){
|
}else if( strcmp(z,"-batch")==0 ){
|
||||||
stdin_is_interactive = 0;
|
stdin_is_interactive = 0;
|
||||||
}else if( strcmp(argv[i],"-heap")==0 ){
|
}else if( strcmp(z,"-heap")==0 ){
|
||||||
#if defined(SQLITE_ENABLE_MEMSYS3) || defined(SQLITE_ENABLE_MEMSYS5)
|
#if defined(SQLITE_ENABLE_MEMSYS3) || defined(SQLITE_ENABLE_MEMSYS5)
|
||||||
int j, c;
|
int j, c;
|
||||||
const char *zSize;
|
const char *zSize;
|
||||||
@@ -2818,7 +2822,7 @@ int main(int argc, char **argv){
|
|||||||
sqlite3_config(SQLITE_CONFIG_HEAP, malloc((int)szHeap), (int)szHeap, 64);
|
sqlite3_config(SQLITE_CONFIG_HEAP, malloc((int)szHeap), (int)szHeap, 64);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SQLITE_ENABLE_VFSTRACE
|
#ifdef SQLITE_ENABLE_VFSTRACE
|
||||||
}else if( strcmp(argv[i],"-vfstrace")==0 ){
|
}else if( strcmp(z,"-vfstrace")==0 ){
|
||||||
extern int vfstrace_register(
|
extern int vfstrace_register(
|
||||||
const char *zTraceName,
|
const char *zTraceName,
|
||||||
const char *zOldVfsName,
|
const char *zOldVfsName,
|
||||||
@@ -2829,11 +2833,11 @@ int main(int argc, char **argv){
|
|||||||
vfstrace_register("trace",0,(int(*)(const char*,void*))fputs,stderr,1);
|
vfstrace_register("trace",0,(int(*)(const char*,void*))fputs,stderr,1);
|
||||||
#endif
|
#endif
|
||||||
#ifdef SQLITE_ENABLE_MULTIPLEX
|
#ifdef SQLITE_ENABLE_MULTIPLEX
|
||||||
}else if( strcmp(argv[i],"-multiplex")==0 ){
|
}else if( strcmp(z,"-multiplex")==0 ){
|
||||||
extern int sqlite3_multiple_initialize(const char*,int);
|
extern int sqlite3_multiple_initialize(const char*,int);
|
||||||
sqlite3_multiplex_initialize(0, 1);
|
sqlite3_multiplex_initialize(0, 1);
|
||||||
#endif
|
#endif
|
||||||
}else if( strcmp(argv[i],"-vfs")==0 ){
|
}else if( strcmp(z,"-vfs")==0 ){
|
||||||
sqlite3_vfs *pVfs = sqlite3_vfs_find(argv[++i]);
|
sqlite3_vfs *pVfs = sqlite3_vfs_find(argv[++i]);
|
||||||
if( pVfs ){
|
if( pVfs ){
|
||||||
sqlite3_vfs_register(pVfs, 1);
|
sqlite3_vfs_register(pVfs, 1);
|
||||||
@@ -2915,7 +2919,8 @@ int main(int argc, char **argv){
|
|||||||
}else if( strcmp(z,"-separator")==0 ){
|
}else if( strcmp(z,"-separator")==0 ){
|
||||||
i++;
|
i++;
|
||||||
if(i>=argc){
|
if(i>=argc){
|
||||||
fprintf(stderr,"%s: Error: missing argument for option: %s\n", Argv0, z);
|
fprintf(stderr,"%s: Error: missing argument for option: %s\n",
|
||||||
|
Argv0, z);
|
||||||
fprintf(stderr,"Use -help for a list of options.\n");
|
fprintf(stderr,"Use -help for a list of options.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -2924,7 +2929,8 @@ int main(int argc, char **argv){
|
|||||||
}else if( strcmp(z,"-nullvalue")==0 ){
|
}else if( strcmp(z,"-nullvalue")==0 ){
|
||||||
i++;
|
i++;
|
||||||
if(i>=argc){
|
if(i>=argc){
|
||||||
fprintf(stderr,"%s: Error: missing argument for option: %s\n", Argv0, z);
|
fprintf(stderr,"%s: Error: missing argument for option: %s\n",
|
||||||
|
Argv0, z);
|
||||||
fprintf(stderr,"Use -help for a list of options.\n");
|
fprintf(stderr,"Use -help for a list of options.\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -2959,8 +2965,26 @@ int main(int argc, char **argv){
|
|||||||
}else if( strcmp(z,"-multiplex")==0 ){
|
}else if( strcmp(z,"-multiplex")==0 ){
|
||||||
i++;
|
i++;
|
||||||
#endif
|
#endif
|
||||||
}else if( strcmp(z,"-help")==0 || strcmp(z, "--help")==0 ){
|
}else if( strcmp(z,"-help")==0 ){
|
||||||
usage(1);
|
usage(1);
|
||||||
|
}else if( strcmp(z,"-cmd")==0 ){
|
||||||
|
if( i==argc-1 ) break;
|
||||||
|
i++;
|
||||||
|
z = argv[i];
|
||||||
|
if( z[0]=='.' ){
|
||||||
|
rc = do_meta_command(z, &data);
|
||||||
|
if( rc && bail_on_error ) return rc;
|
||||||
|
}else{
|
||||||
|
open_db(&data);
|
||||||
|
rc = shell_exec(data.db, z, shell_callback, &data, &zErrMsg);
|
||||||
|
if( zErrMsg!=0 ){
|
||||||
|
fprintf(stderr,"Error: %s\n", zErrMsg);
|
||||||
|
if( bail_on_error ) return rc!=0 ? rc : 1;
|
||||||
|
}else if( rc!=0 ){
|
||||||
|
fprintf(stderr,"Error: unable to process SQL \"%s\"\n", z);
|
||||||
|
if( bail_on_error ) return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
fprintf(stderr,"%s: Error: unknown option: %s\n", Argv0, z);
|
fprintf(stderr,"%s: Error: unknown option: %s\n", Argv0, z);
|
||||||
fprintf(stderr,"Use -help for a list of options.\n");
|
fprintf(stderr,"Use -help for a list of options.\n");
|
||||||
|
|||||||
Reference in New Issue
Block a user