diff options
author | Stephen Warren <swarren@nvidia.com> | 2014-02-03 13:21:06 -0700 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-02-19 09:47:34 -0500 |
commit | e5e897c01b1cd496187ca56a38ff5559d27f951c (patch) | |
tree | b2842a2aeffcdd10fbe7300920b2252f545d9b57 /common | |
parent | 2453de99df576fb907fe06cac58c628e3590833f (diff) |
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>
Diffstat (limited to 'common')
-rw-r--r-- | common/cmd_test.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/common/cmd_test.c b/common/cmd_test.c index 4c2f967c6dc..c93fe782310 100644 --- a/common/cmd_test.c +++ b/common/cmd_test.c @@ -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) { |