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:
parent
2453de99df
commit
e5e897c01b
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user