* POSSIBILITY OF SUCH DAMAGE.
*/
+#include "fmacros.h"
+
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
{"get",2,REDIS_CMD_INLINE},
{"set",3,REDIS_CMD_BULK},
{"setnx",3,REDIS_CMD_BULK},
- {"del",2,REDIS_CMD_INLINE},
+ {"del",-2,REDIS_CMD_INLINE},
{"exists",2,REDIS_CMD_INLINE},
{"incr",2,REDIS_CMD_INLINE},
{"decr",2,REDIS_CMD_INLINE},
{"lrem",4,REDIS_CMD_BULK},
{"sadd",3,REDIS_CMD_BULK},
{"srem",3,REDIS_CMD_BULK},
+ {"smove",4,REDIS_CMD_BULK},
{"sismember",3,REDIS_CMD_BULK},
{"scard",2,REDIS_CMD_INLINE},
{"sinter",-2,REDIS_CMD_INLINE},
{"sinterstore",-3,REDIS_CMD_INLINE},
+ {"sunion",-2,REDIS_CMD_INLINE},
+ {"sunionstore",-3,REDIS_CMD_INLINE},
+ {"sdiff",-2,REDIS_CMD_INLINE},
+ {"sdiffstore",-3,REDIS_CMD_INLINE},
{"smembers",2,REDIS_CMD_INLINE},
{"incrby",3,REDIS_CMD_INLINE},
{"decrby",3,REDIS_CMD_INLINE},
+ {"getset",3,REDIS_CMD_BULK},
{"randomkey",1,REDIS_CMD_INLINE},
{"select",2,REDIS_CMD_INLINE},
{"move",3,REDIS_CMD_INLINE},
{"sort",-2,REDIS_CMD_INLINE},
{"info",1,REDIS_CMD_INLINE},
{"mget",-2,REDIS_CMD_INLINE},
+ {"expire",3,REDIS_CMD_INLINE},
+ {"ttl",2,REDIS_CMD_INLINE},
+ {"slaveof",3,REDIS_CMD_INLINE},
{NULL,0,0}
};
int main(int argc, char **argv) {
int firstarg, j;
char **argvcopy;
+ struct redisCommand *rc;
config.hostip = "127.0.0.1";
config.hostport = 6379;
for(j = 0; j < argc; j++)
argvcopy[j] = sdsnew(argv[j]);
- /* Read the last argument from stdandard input */
- if (!isatty(fileno(stdin))) {
- sds lastarg = readArgFromStdin();
- argvcopy[argc] = lastarg;
- argc++;
- }
-
if (argc < 1) {
fprintf(stderr, "usage: redis-cli [-h host] [-p port] cmd arg1 arg2 arg3 ... argN\n");
fprintf(stderr, "usage: echo \"argN\" | redis-cli [-h host] [-p port] cmd arg1 arg2 ... arg(N-1)\n");
exit(1);
}
+ /* Read the last argument from stdandard input if needed */
+ if ((rc = lookupCommand(argv[0])) != NULL) {
+ if (rc->arity > 0 && argc == rc->arity-1) {
+ sds lastarg = readArgFromStdin();
+ argvcopy[argc] = lastarg;
+ argc++;
+ }
+ }
+
return cliSendCommand(argc, argvcopy);
}