diff options
Diffstat (limited to 'tools/h5repack/h5repack_main.c')
-rw-r--r-- | tools/h5repack/h5repack_main.c | 96 |
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); +} + + + |