summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-11-28 21:50:54 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2011-11-29 21:12:42 +0100
commit1f56f817112df3e3644c4039c806e770620ca692 (patch)
tree9b92b80128479921ba18ebbe9111e3acf0d1be92 /commands
parenteb1c2e7de651b90f12864303ec965084d7206761 (diff)
downloadbarebox-1f56f817112df3e3644c4039c806e770620ca692.tar.gz
add generic uncompress command
Using the new uncompress function we can now implement a command which can uncompress all known compression types. This supplements the unlzo command. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands')
-rw-r--r--commands/Kconfig10
-rw-r--r--commands/Makefile2
-rw-r--r--commands/uncompress.c (renamed from commands/unlzo.c)23
3 files changed, 18 insertions, 17 deletions
diff --git a/commands/Kconfig b/commands/Kconfig
index 6b21a2e..c2492fa 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -422,13 +422,13 @@ config CMD_GPIO
include gpio_set_value, gpio_get_value, gpio_direction_input and
gpio_direction_output commands to control gpios.
-config CMD_UNLZO
+config CMD_UNCOMPRESS
bool
- select LZO_DECOMPRESS
- prompt "unlzo"
+ prompt "uncompress"
help
- Say yes here to get the unlzo command. lzo is a fast compression
- algorithm by Markus Franz Xaver Johannes Oberhumer.
+ Say yes here to get the uncompress command. uncompress handles
+ lzo, gzip and bzip2 compressed files depending on the compiled
+ in compression libraries
config CMD_I2C
bool
diff --git a/commands/Makefile b/commands/Makefile
index 45f9ccf..f82dcfa 100644
--- a/commands/Makefile
+++ b/commands/Makefile
@@ -48,7 +48,7 @@ obj-$(CONFIG_CMD_INSMOD) += insmod.o
obj-$(CONFIG_CMD_BMP) += bmp.o
obj-$(CONFIG_USB_GADGET_DFU) += dfu.o
obj-$(CONFIG_CMD_GPIO) += gpio.o
-obj-$(CONFIG_CMD_UNLZO) += unlzo.o
+obj-$(CONFIG_CMD_UNCOMPRESS) += uncompress.o
obj-$(CONFIG_CMD_I2C) += i2c.o
obj-$(CONFIG_CMD_UBI) += ubi.o
obj-$(CONFIG_CMD_MENU) += menu.o
diff --git a/commands/unlzo.c b/commands/uncompress.c
index 0b6dd4b..fff6227 100644
--- a/commands/unlzo.c
+++ b/commands/uncompress.c
@@ -1,5 +1,5 @@
/*
- * unlzo.c - uncompress a lzo compressed file
+ * uncompress.c - uncompress a lzo compressed file
*
* Copyright (c) 2010 Sascha Hauer <s.hauer@pengutronix.de>, Pengutronix
*
@@ -25,11 +25,11 @@
#include <errno.h>
#include <fcntl.h>
#include <fs.h>
-#include <lzo.h>
+#include <uncompress.h>
-static int do_unlzo(struct command *cmdtp, int argc, char *argv[])
+static int do_uncompress(struct command *cmdtp, int argc, char *argv[])
{
- int from, to, ret, retlen;
+ int from, to, ret;
if (argc != 3)
return COMMAND_ERROR_USAGE;
@@ -47,7 +47,8 @@ static int do_unlzo(struct command *cmdtp, int argc, char *argv[])
goto exit_close;
}
- ret = unlzo(from, to, &retlen);
+ ret = uncompress_fd_to_fd(from, to, uncompress_err_stdout);
+
if (ret)
printf("failed to decompress\n");
@@ -57,13 +58,13 @@ exit_close:
return ret;
}
-static const __maybe_unused char cmd_unlzo_help[] =
-"Usage: unlzo <infile> <outfile>\n"
-"Uncompress a lzo compressed file\n";
+static const __maybe_unused char cmd_uncompress_help[] =
+"Usage: uncompress <infile> <outfile>\n"
+"Uncompress a compressed file\n";
-BAREBOX_CMD_START(unlzo)
- .cmd = do_unlzo,
+BAREBOX_CMD_START(uncompress)
+ .cmd = do_uncompress,
.usage = "lzop <infile> <outfile>",
- BAREBOX_CMD_HELP(cmd_unlzo_help)
+ BAREBOX_CMD_HELP(cmd_uncompress_help)
BAREBOX_CMD_END