cmd_test: implement -e test for file existence

This is much like a regular shell's -e operator, except that it takes
multiple arguments to specify the device type and  device/partition ID
in addition to the usual filename:

if test -e mmc 0:1 /boot/boot.scr; then echo yes; else echo no; fi

Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
Stephen Warren 2014-02-03 13:21:06 -07:00 committed by Tom Rini
parent 2453de99df
commit e5e897c01b

View File

@ -16,6 +16,7 @@
#include <common.h>
#include <command.h>
#include <fs.h>
#define OP_INVALID 0
#define OP_NOT 1
@ -33,6 +34,7 @@
#define OP_INT_LE 13
#define OP_INT_GT 14
#define OP_INT_GE 15
#define OP_FILE_EXISTS 16
const struct {
int arg;
@ -55,6 +57,7 @@ const struct {
{0, "-a", OP_AND, 1},
{0, "-z", OP_STR_EMPTY, 2},
{0, "-n", OP_STR_NEMPTY, 2},
{0, "-e", OP_FILE_EXISTS, 4},
};
static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
@ -143,6 +146,9 @@ static int do_test(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
expr = simple_strtol(ap[0], NULL, 10) >=
simple_strtol(ap[2], NULL, 10);
break;
case OP_FILE_EXISTS:
expr = file_exists(ap[1], ap[2], ap[3], FS_TYPE_ANY);
break;
}
switch (op) {