summaryrefslogtreecommitdiffstats
path: root/tools/h5repack/h5repack_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/h5repack/h5repack_main.c')
-rw-r--r--tools/h5repack/h5repack_main.c96
1 files changed, 95 insertions, 1 deletions
diff --git a/tools/h5repack/h5repack_main.c b/tools/h5repack/h5repack_main.c
index b0415e4..2956adb 100644
--- a/tools/h5repack/h5repack_main.c
+++ b/tools/h5repack/h5repack_main.c
@@ -13,12 +13,106 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include "h5repack.h"
+#include "h5repack_parse.h"
+#include <stdlib.h>
-int main (void)
+static void usage();
+
+
+/*
+Examples of use:
+-v -i file1.h5 -o file2.h5 -t "dataset:GZIP 6" -c "dataset:2x2"
+-v -i file1.h5 -o file2.h5 -t "GZIP 6"
+*/
+
+
+int main(int argc, char **argv)
{
+ char *infile = NULL;
+ char *outfile = NULL;
+ packoptions_t options; /*the global options */
+ int i;
+
+ /* initialize options */
+ h5repack_init (&options,0);
+
+ for ( i = 1; i < argc; i++)
+ {
+ if (strcmp(argv[i], "-i") == 0) {
+ infile = argv[++i];
+ }
+ else if (strcmp(argv[i], "-o") == 0) {
+ outfile = argv[++i];
+ }
+ else if (strcmp(argv[i], "-v") == 0) {
+ options.verbose = 1;
+ }
+ else if (strcmp(argv[i], "-t") == 0) {
+
+ /* add the -t option */
+ h5repack_addcomp(argv[i+1],&options);
+
+ /* jump to next */
+ ++i;
+ }
+ else if (strcmp(argv[i], "-c") == 0) {
+
+ /* parse the -c option */
+ h5repack_addchunk(argv[i+1],&options);
+
+ /* jump to next */
+ ++i;
+ }
+
+ else if (strcmp(argv[i], "-m") == 0) {
+
+ options.threshold = parse_number(argv[i+1]);
+ if (options.threshold==-1) {
+ printf("Error: Invalid treshold size <%s>\n",argv[i+1]);
+ exit(1);
+ }
+ ++i;
+ }
+
+ else if (strcmp(argv[i], "-f") == 0) {
+ read_info(argv[++i],&options);
+ }
+
+ else if (argv[i][0] == '-') {
+ usage();
+ }
+ }
+ if (infile == NULL || outfile == NULL)
+ usage();
+
+ /* pack it */
+ h5repack(infile,outfile,&options);
+
+ /* free tables */
+ h5repack_end(&options);
return 0;
}
+
+/*-------------------------------------------------------------------------
+ * Function: usage
+ *
+ * Purpose: print usage
+ *
+ * Return: void
+ *
+ *-------------------------------------------------------------------------
+ */
+
+static
+void usage()
+{
+
+ exit(1);
+}
+
+
+