summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
Diffstat (limited to 'commands')
-rw-r--r--commands/bootm.c2
-rw-r--r--commands/cp.c26
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