1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-05 15:55:57 +03:00

Updates to the command-line shell. Simplify the banner message. Add the

".save" command as an alias for ".backup".  When starting with no arguments,
include a banner message warning that the database is transient and in-memory
and mention the ".open" command.

FossilOrigin-Name: f5ad1e1bf2828c5da70c1ff944d8212036142e6f
This commit is contained in:
drh
2014-02-11 16:22:18 +00:00
4 changed files with 42 additions and 12 deletions

View File

@@ -1,5 +1,5 @@
C Fixes\sto\sthe\s"editline"\ssupport\sin\sthe\scommand-line\sshell. C Updates\sto\sthe\scommand-line\sshell.\s\sSimplify\sthe\sbanner\smessage.\s\sAdd\sthe\n".save"\scommand\sas\san\salias\sfor\s".backup".\s\sWhen\sstarting\swith\sno\sarguments,\ninclude\sa\sbanner\smessage\swarning\sthat\sthe\sdatabase\sis\stransient\sand\sin-memory\nand\smention\sthe\s".open"\scommand.
D 2014-02-11T14:37:51.706 D 2014-02-11T16:22:18.453
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81 F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -220,7 +220,7 @@ F src/random.c d10c1f85b6709ca97278428fd5db5bbb9c74eece
F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6 F src/resolve.c 7eda9097b29fcf3d2b42fdc17d1de672134e09b6
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0 F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
F src/select.c 50961f0d0ab8f2d45ff29ec5f91d8db221330ca7 F src/select.c 50961f0d0ab8f2d45ff29ec5f91d8db221330ca7
F src/shell.c b1f75cfcd05b7921d74361f1cb9c01b9ca0b13df F src/shell.c 3dd86bf73ccd079f0e32ef5069600586085e8239
F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b F src/sqlite.h.in eed7f7d66a60daaa7b4a597dcd9bad87aad9611b
F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e F src/sqlite3.rc 11094cc6a157a028b301a9f06b3d03089ea37c3e
F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc F src/sqlite3ext.h 886f5a34de171002ad46fae8c36a7d8051c190fc
@@ -803,7 +803,7 @@ F test/shared9.test 5f2a8f79b4d6c7d107a01ffa1ed05ae7e6333e21
F test/sharedA.test 0cdf1a76dfa00e6beee66af5b534b1e8df2720f5 F test/sharedA.test 0cdf1a76dfa00e6beee66af5b534b1e8df2720f5
F test/shared_err.test 0079c05c97d88cfa03989b7c20a8b266983087aa F test/shared_err.test 0079c05c97d88cfa03989b7c20a8b266983087aa
F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304 F test/sharedlock.test 5ede3c37439067c43b0198f580fd374ebf15d304
F test/shell1.test e7c0b9ebda25d5e78f0a3ea0dc4e31bb6d8098c0 F test/shell1.test f2a1d471e5cd2b42f7a65b166dc1ace2b8d11583
F test/shell2.test c57da3a381c099b02c813ba156298d5c2f5c93a3 F test/shell2.test c57da3a381c099b02c813ba156298d5c2f5c93a3
F test/shell3.test 5e8545ec72c4413a0e8d4c6be56496e3c257ca29 F test/shell3.test 5e8545ec72c4413a0e8d4c6be56496e3c257ca29
F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9 F test/shell4.test aa4eef8118b412d1a01477a53426ece169ea86a9
@@ -1153,7 +1153,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
P c950d6c4117d076f871518e738cdf9e8c46a19fc P 7989ce5f105657060a39be295255da8eff9ed56e fe284afe739c497e153ac2bc0275f7c9e862c824
R c9ba63de227fe5f3c297f7ef3cdd12e1 R 6488d4d20aaa0785dbe5d9952b0b36b8
U drh U drh
Z ef37a62508215b02b96d545bd9d80c32 Z d484b7c22506286af852445c160c123b

View File

@@ -1 +1 @@
7989ce5f105657060a39be295255da8eff9ed56e f5ad1e1bf2828c5da70c1ff944d8212036142e6f

View File

@@ -1586,6 +1586,7 @@ static char zHelp[] =
".quit Exit this program\n" ".quit Exit this program\n"
".read FILENAME Execute SQL in FILENAME\n" ".read FILENAME Execute SQL in FILENAME\n"
".restore ?DB? FILE Restore content of DB (default \"main\") from FILE\n" ".restore ?DB? FILE Restore content of DB (default \"main\") from FILE\n"
".save FILE Write in-memory database into FILE\n"
".schema ?TABLE? Show the CREATE statements\n" ".schema ?TABLE? Show the CREATE statements\n"
" If TABLE specified, only show tables matching\n" " If TABLE specified, only show tables matching\n"
" LIKE pattern TABLE.\n" " LIKE pattern TABLE.\n"
@@ -2155,7 +2156,9 @@ static int do_meta_command(char *zLine, struct callback_data *p){
if( nArg==0 ) return 0; /* no tokens, no error */ if( nArg==0 ) return 0; /* no tokens, no error */
n = strlen30(azArg[0]); n = strlen30(azArg[0]);
c = azArg[0][0]; c = azArg[0][0];
if( c=='b' && n>=3 && strncmp(azArg[0], "backup", n)==0 ){ if( (c=='b' && n>=3 && strncmp(azArg[0], "backup", n)==0)
|| (c=='s' && n>=3 && strncmp(azArg[0], "save", n)==0)
){
const char *zDestFile = 0; const char *zDestFile = 0;
const char *zDb = 0; const char *zDb = 0;
sqlite3 *pDest; sqlite3 *pDest;
@@ -3503,6 +3506,26 @@ static void main_init(struct callback_data *data) {
sqlite3_config(SQLITE_CONFIG_SINGLETHREAD); sqlite3_config(SQLITE_CONFIG_SINGLETHREAD);
} }
/*
** Output text to the console in a font that attracts extra attention.
*/
#ifdef _WIN32
static void printBold(const char *zText){
HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO defaultScreenInfo;
GetConsoleScreenBufferInfo(out, &defaultScreenInfo);
SetConsoleTextAttribute(out,
FOREGROUND_RED|FOREGROUND_INTENSITY
);
printf("%s", zText);
SetConsoleTextAttribute(out, defaultScreenInfo.wAttributes);
}
#else
static void printBold(const char *zText){
printf("\033[1m%s\033[0m", zText);
}
#endif
/* /*
** Get the argument to an --option. Throw an error and die if no argument ** Get the argument to an --option. Throw an error and die if no argument
** is available. ** is available.
@@ -3523,6 +3546,7 @@ int main(int argc, char **argv){
char *zFirstCmd = 0; char *zFirstCmd = 0;
int i; int i;
int rc = 0; int rc = 0;
int warnInmemoryDb = 0;
if( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)!=0 ){ if( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)!=0 ){
fprintf(stderr, "SQLite header and source version mismatch\n%s\n%s\n", fprintf(stderr, "SQLite header and source version mismatch\n%s\n%s\n",
@@ -3617,6 +3641,7 @@ int main(int argc, char **argv){
if( data.zDbFilename==0 ){ if( data.zDbFilename==0 ){
#ifndef SQLITE_OMIT_MEMORYDB #ifndef SQLITE_OMIT_MEMORYDB
data.zDbFilename = ":memory:"; data.zDbFilename = ":memory:";
warnInmemoryDb = argc==1;
#else #else
fprintf(stderr,"%s: Error: no database filename specified\n", Argv0); fprintf(stderr,"%s: Error: no database filename specified\n", Argv0);
return 1; return 1;
@@ -3753,10 +3778,15 @@ int main(int argc, char **argv){
int nHistory; int nHistory;
printf( printf(
"SQLite version %s %.19s\n" /*extra-version-info*/ "SQLite version %s %.19s\n" /*extra-version-info*/
"Enter \".help\" for instructions\n" "Enter \".help\" for usage hints.\n",
"Enter SQL statements terminated with a \";\"\n",
sqlite3_libversion(), sqlite3_sourceid() sqlite3_libversion(), sqlite3_sourceid()
); );
if( warnInmemoryDb ){
printf("Connected to a ");
printBold("transient in-memory database.");
printf("\nUse \".open FILENAME\" to reopen on a "
"persistent database.\n");
}
zHome = find_home_dir(); zHome = find_home_dir();
if( zHome ){ if( zHome ){
nHistory = strlen30(zHome) + 20; nHistory = strlen30(zHome) + 20;

View File

@@ -105,7 +105,7 @@ do_test shell1-1.7.1 {
set rc [lindex $res 0] set rc [lindex $res 0]
list $rc \ list $rc \
[regexp {SQLite version} $res] \ [regexp {SQLite version} $res] \
[regexp {Enter SQL statements} $res] [regexp {Enter ".help" for usage hints} $res]
} {0 1 1} } {0 1 1}
# -batch force batch I/O # -batch force batch I/O