diff options
Diffstat (limited to 'commands')
-rw-r--r-- | commands/bootm.c | 2 | ||||
-rw-r--r-- | commands/cp.c | 26 |
2 files changed, 20 insertions, 8 deletions
diff --git a/commands/bootm.c b/commands/bootm.c index ada790ee97..a4d1c367f0 100644 --- a/commands/bootm.c +++ b/commands/bootm.c @@ -332,8 +332,6 @@ static int do_bootm(struct command *cmdtp, int argc, char *argv[]) * recover from any failures any more... */ - disable_interrupts(); - puts ("OK\n"); /* loop through the registered handlers */ diff --git a/commands/cp.c b/commands/cp.c index 342810528b..f78e3de013 100644 --- a/commands/cp.c +++ b/commands/cp.c @@ -32,6 +32,7 @@ #include <fs.h> #include <malloc.h> #include <libgen.h> +#include <getopt.h> /** * @param[in] cmdtp FIXME @@ -44,8 +45,21 @@ static int do_cp(struct command *cmdtp, int argc, char *argv[]) struct stat statbuf; int last_is_dir = 0; int i; + int opt; + int verbose = 0; + int argc_min; - if (argc < 3) + while ((opt = getopt(argc, argv, "v")) > 0) { + switch (opt) { + case 'v': + verbose = 1; + break; + } + } + + argc_min = optind + 2; + + if (argc < argc_min) return COMMAND_ERROR_USAGE; if (!stat(argv[argc - 1], &statbuf)) { @@ -53,21 +67,21 @@ static int do_cp(struct command *cmdtp, int argc, char *argv[]) last_is_dir = 1; } - if (argc > 3 && !last_is_dir) { + if (argc > argc_min && !last_is_dir) { printf("cp: target `%s' is not a directory\n", argv[argc - 1]); return 1; } - for (i = 1; i < argc - 1; i++) { + for (i = optind; i < argc - 1; i++) { if (last_is_dir) { char *dst; dst = concat_path_file(argv[argc - 1], basename(argv[i])); - ret = copy_file(argv[i], dst); + ret = copy_file(argv[i], dst, verbose); if (ret) goto out; free(dst); } else { - ret = copy_file(argv[i], argv[argc - 1]); + ret = copy_file(argv[i], argv[argc - 1], verbose); if (ret) goto out; } @@ -79,7 +93,7 @@ out: } BAREBOX_CMD_HELP_START(cp) -BAREBOX_CMD_HELP_USAGE("cp <source> <destination>\n") +BAREBOX_CMD_HELP_USAGE("cp [-v] <source> <destination>\n") BAREBOX_CMD_HELP_SHORT("copy file from <source> to <destination>.\n") BAREBOX_CMD_HELP_END |