mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 17:10:50 +00:00
Merge pull request #2133 from chooper/histfile-override
override histfile from env - fixes #831 and copies #833
This commit is contained in:
commit
3da87b70dd
@ -60,6 +60,8 @@
|
|||||||
#define OUTPUT_CSV 2
|
#define OUTPUT_CSV 2
|
||||||
#define REDIS_CLI_KEEPALIVE_INTERVAL 15 /* seconds */
|
#define REDIS_CLI_KEEPALIVE_INTERVAL 15 /* seconds */
|
||||||
#define REDIS_CLI_DEFAULT_PIPE_TIMEOUT 30 /* seconds */
|
#define REDIS_CLI_DEFAULT_PIPE_TIMEOUT 30 /* seconds */
|
||||||
|
#define REDIS_CLI_HISTFILE_ENV "REDISCLI_HISTFILE"
|
||||||
|
#define REDIS_CLI_HISTFILE_DEFAULT ".rediscli_history"
|
||||||
|
|
||||||
static redisContext *context;
|
static redisContext *context;
|
||||||
static struct config {
|
static struct config {
|
||||||
@ -138,6 +140,30 @@ static void cliRefreshPrompt(void) {
|
|||||||
snprintf(config.prompt+len,sizeof(config.prompt)-len,"> ");
|
snprintf(config.prompt+len,sizeof(config.prompt)-len,"> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static sds getHistoryPath() {
|
||||||
|
char *path = NULL;
|
||||||
|
sds historyPath = NULL;
|
||||||
|
|
||||||
|
/* check the env for a histfile override */
|
||||||
|
path = getenv(REDIS_CLI_HISTFILE_ENV);
|
||||||
|
if (path != NULL && *path != '\0') {
|
||||||
|
if (!strcmp("/dev/null", path)) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* if the env is set, return it */
|
||||||
|
historyPath = sdscatprintf(sdsempty(), "%s", path);
|
||||||
|
} else {
|
||||||
|
char *home = getenv("HOME");
|
||||||
|
if (home != NULL && *home != '\0') {
|
||||||
|
/* otherwise, return the default */
|
||||||
|
historyPath = sdscatprintf(sdsempty(), "%s/%s", home, REDIS_CLI_HISTFILE_DEFAULT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return historyPath;
|
||||||
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------
|
/*------------------------------------------------------------------------------
|
||||||
* Help functions
|
* Help functions
|
||||||
*--------------------------------------------------------------------------- */
|
*--------------------------------------------------------------------------- */
|
||||||
@ -891,10 +917,9 @@ static void repl(void) {
|
|||||||
|
|
||||||
/* Only use history when stdin is a tty. */
|
/* Only use history when stdin is a tty. */
|
||||||
if (isatty(fileno(stdin))) {
|
if (isatty(fileno(stdin))) {
|
||||||
history = 1;
|
historyfile = getHistoryPath();
|
||||||
|
if (historyfile != NULL) {
|
||||||
if (getenv("HOME") != NULL) {
|
history = 1;
|
||||||
historyfile = sdscatprintf(sdsempty(),"%s/.rediscli_history",getenv("HOME"));
|
|
||||||
linenoiseHistoryLoad(historyfile);
|
linenoiseHistoryLoad(historyfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user