sgw | Static git web (fork of stagit) |
| download: https://git.y1.nz/archives/sgw.tar.gz | |
| README | Files | Log | Refs | LICENSE |
opt.c
1
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <limits.h>
5
6 #include "opt.h"
7
8
9 int
10 parse_opt(Opt *opt, const char *cur, const char *next)
11 {
12 int index;
13 char flag;
14
15 if (cur[0] != '-') return OPT_LAST;
16 for (index = 1;;) {
17 flag = cur[index];
18 if (flag == '\0') break;
19
20 switch (flag) {
21 case 'i': opt->index = 1; break;
22 case 'p': opt->pages = 1; break;
23 case 'o': opt->out_dir = next; return OPT_SKIP;
24 case 'b': opt->base_url = next; return OPT_SKIP;
25 case 'c': opt->cache = next; return OPT_SKIP;
26 default: ERROR("Unrecognized flag: -%c." "\n\n", flag);
27 }
28
29 index++;
30 }
31
32 return OPT_GOOD;
33 }
34
35 int
36 parse_opts(Opt *opt, int argc, const char * argv[])
37 {
38 const char * cur;
39 const char * next;
40 int index;
41
42 if (argc < 2) ERROR("");
43
44 /* set default values */
45 opt->index = 0;
46 opt->pages = 0;
47 opt->base_url = "";
48 opt->out_dir = "";
49
50 for (index = 1;;) {
51 cur = argv[index];
52 // printf("Parsing flag group: %s" "\n", cur);
53 next = (index+1 < argc-1) ? argv[index+1] : NULL;
54 switch (parse_opt(opt, cur, next)) {
55 case OPT_SKIP: index++; break;
56 case OPT_FAIL: return OPT_FAIL;
57 case OPT_LAST:
58 opt->repo_dirs = argv + index;
59 opt->repo_count = argc - index;
60 return OPT_GOOD;
61 }
62 index++;
63 if(index >= argc) break;
64 }
65
66 ERROR("Must specify at least one repository." "\n\n");
67 }
68
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.