comparison ffstools/tiffs-mkfs/main.c @ 705:12ae93940467

tiffs-mkfs program written, compiles
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 20 May 2020 06:55:58 +0000
parents
children 178ed445021d
comparison
equal deleted inserted replaced
704:dacd9fdc392a 705:12ae93940467
1 #include <sys/types.h>
2 #include <sys/param.h>
3 #include <stdio.h>
4 #include <stdint.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <strings.h>
8 #include "struct.h"
9 #include "globals.h"
10
11 void
12 process_cmdline(argc, argv)
13 char **argv;
14 {
15 extern int optind;
16 extern char *optarg;
17 int c;
18
19 while ((c = getopt(argc, argv, "c:f:m:")) != EOF)
20 switch (c) {
21 case 'c':
22 chunk_size_max = strtoul(optarg, 0, 0);
23 continue;
24 case 'f':
25 if (*optarg != '/') {
26 fprintf(stderr,
27 "error: format name must begin with \'/\'\n");
28 exit(1);
29 }
30 format_name = optarg;
31 continue;
32 case 'm':
33 block_files_max = strtoul(optarg, 0, 0);
34 continue;
35 default:
36 usage: fprintf(stderr,
37 "usage: %s [options] <org> <srcdir> <outfile>\n",
38 argv[0]);
39 exit(1);
40 }
41 if (argc - optind != 3)
42 goto usage;
43 parse_org_arg(argv[optind]);
44 input_host_dir = argv[optind+1];
45 output_filename = argv[optind+2];
46 }
47
48 main(argc, argv)
49 char **argv;
50 {
51 process_cmdline(argc, argv);
52 if (!format_name)
53 format_name = "/";
54 preen_chunk_size_max();
55 preen_block_files_max();
56 /* input phase */
57 read_dir_level(&root, input_host_dir, 0);
58 sort_dir_level(&root);
59 /* output phase */
60 prepare_output_buffers();
61 open_output_file();
62 create_root_dir();
63 process_dir_level(&root);
64 finish_output();
65 close(output_fd);
66 exit(0);
67 }