From 6aaba64b0c7044c242329499d5d4c53c3d0cde3a Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Wed, 8 Oct 2014 16:22:33 +0200 Subject: commands: implement 'cmp' command This command compares two files. It does not show the differences, it only returns successfully if both files are identical and with an error if they differ. Signed-off-by: Sascha Hauer --- commands/Kconfig | 10 ++++++++++ commands/Makefile | 1 + commands/cmp.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 commands/cmp.c diff --git a/commands/Kconfig b/commands/Kconfig index d73a393885..bef58473a5 100644 --- a/commands/Kconfig +++ b/commands/Kconfig @@ -811,6 +811,16 @@ config CMD_CP Options: -v verbose +config CMD_CMP + tristate + prompt "cmp" + help + compare two files + + Usage: cmp FILE1 FILE2 + + Returns successfully if the two files are the same, return with an error if not + config CMD_DIRNAME tristate prompt "dirname" diff --git a/commands/Makefile b/commands/Makefile index b1cdf331c4..be174969b0 100644 --- a/commands/Makefile +++ b/commands/Makefile @@ -106,3 +106,4 @@ obj-$(CONFIG_CMD_IMD) += imd.o obj-$(CONFIG_CMD_HWCLOCK) += hwclock.o obj-$(CONFIG_CMD_USBGADGET) += usbgadget.o obj-$(CONFIG_CMD_FIRMWARELOAD) += firmwareload.o +obj-$(CONFIG_CMD_CMP) += cmp.o diff --git a/commands/cmp.c b/commands/cmp.c new file mode 100644 index 0000000000..c493988a78 --- /dev/null +++ b/commands/cmp.c @@ -0,0 +1,42 @@ +/* + * cmp - determine if two files differ + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + */ + +#include +#include +#include +#include + +static int do_cmp(int argc, char *argv[]) +{ + if (argc != 3) + return COMMAND_ERROR_USAGE; + + return compare_file(argv[1], argv[2]); +} + +BAREBOX_CMD_HELP_START(cmp) +BAREBOX_CMD_HELP_TEXT("Returns successfully if the two files are the same, return with an error if not") +BAREBOX_CMD_HELP_END + +BAREBOX_CMD_START(cmp) + .cmd = do_cmp, + BAREBOX_CMD_DESC("compare two files") + BAREBOX_CMD_OPTS("FILE1 FILE2") + BAREBOX_CMD_GROUP(CMD_GRP_FILE) + BAREBOX_CMD_HELP(cmd_cmp_help) +BAREBOX_CMD_END -- cgit v1.2.1