Sun, 17 Dec 2023 14:25:34 +0100
[Makefile] fix missing rules preventing dry-runs
We have to support dry-runs, because many IDEs are using
dry-runs to collect build information.
Some rules have dependencies that expect certain files or
directories to be just present. We added respective build
rules which invoke the test program. This way, the behavior
when running make normally is exactly the same, but dry-runs
are also not failing now.
11 | 1 | /* |
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
3 | * | |
364
3769ba002fd1
updates copyright date
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
355
diff
changeset
|
4 | * Copyright 2018 Olaf Wintermann. All rights reserved. |
11 | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | |
7 | * modification, are permitted provided that the following conditions are met: | |
8 | * | |
9 | * 1. Redistributions of source code must retain the above copyright | |
10 | * notice, this list of conditions and the following disclaimer. | |
11 | * | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | |
15 | * | |
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE | |
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
26 | * POSSIBILITY OF SUCH DAMAGE. | |
27 | */ | |
28 | ||
29 | #include <stdio.h> | |
30 | #include <stdlib.h> | |
31 | #include <string.h> | |
32 | ||
33 | #include "optparser.h" | |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
34 | #include "sopt.h" |
11 | 35 | |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
36 | #include <cx/hash_map.h> |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
37 | |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
38 | |
11 | 39 | void cmd_args_free(CmdArgs *args) { |
219
9792cfe63b80
added resolve-conflicts and delete-conflicts to help text and fixed crash with unknown cmd options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
213
diff
changeset
|
40 | if(args) { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
41 | cxMapDestroy(args->options); |
684
a4b4257c1a5f
improve shell completion
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
517
diff
changeset
|
42 | if(args->argv) { |
a4b4257c1a5f
improve shell completion
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
517
diff
changeset
|
43 | free(args->argv); |
a4b4257c1a5f
improve shell completion
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
517
diff
changeset
|
44 | } |
219
9792cfe63b80
added resolve-conflicts and delete-conflicts to help text and fixed crash with unknown cmd options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
213
diff
changeset
|
45 | free(args); |
9792cfe63b80
added resolve-conflicts and delete-conflicts to help text and fixed crash with unknown cmd options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
213
diff
changeset
|
46 | } |
11 | 47 | } |
48 | ||
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
49 | static void cmd_map_put(CxMap *map, const char *key, const void *value) { |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
50 | cxMapPut(map, key, (void*)value); |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
51 | } |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
52 | |
11 | 53 | CmdArgs* cmd_parse_args(int argc, char **argv) { |
54 | CmdArgs *a = malloc(sizeof(CmdArgs)); | |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
55 | a->options = cxHashMapCreate(cxDefaultAllocator, CX_STORE_POINTERS, 16); |
684
a4b4257c1a5f
improve shell completion
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
517
diff
changeset
|
56 | a->argv = argc > 0 ? calloc(argc, sizeof(char*)) : NULL; |
11 | 57 | a->argc = 0; |
58 | ||
68
f6d3db6113d3
added verbose option + encryption flag fixes
Mike Becker <universe@uap-core.de>
parents:
62
diff
changeset
|
59 | const char *NOARG = ""; |
f6d3db6113d3
added verbose option + encryption flag fixes
Mike Becker <universe@uap-core.de>
parents:
62
diff
changeset
|
60 | |
11 | 61 | char *option = NULL; |
62 | char optchar = 0; | |
721
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
63 | int optterminated = 0; |
11 | 64 | for(int i=0;i<argc;i++) { |
65 | char *arg = argv[i]; | |
66 | size_t len = strlen(arg); | |
721
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
67 | if(len == 2 && arg[0] == '-' && arg[1] == '-') { |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
68 | optterminated = 1; |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
69 | } else if(!optterminated && len > 1 && arg[0] == '-') { |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
70 | // argument is in next arg but starts with a dash |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
71 | // we assume this is not intended and consider this an error |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
72 | if(option) { |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
73 | fprintf(stderr, |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
74 | "Missing argument for option -%c\n\n", optchar); |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
75 | cmd_args_free(a); |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
76 | return NULL; |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
77 | } |
11 | 78 | for(int c=1;c<len;c++) { |
721
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
79 | // argument is in the same arg |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
80 | if(option) { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
81 | cxMapPut(a->options, cx_hash_key_str(option), &arg[c]); |
721
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
82 | option = NULL; |
c401f4af44b1
adds support for option terminator '--'
Mike Becker <universe@uap-core.de>
parents:
684
diff
changeset
|
83 | break; |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
84 | } |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
85 | |
11 | 86 | switch(arg[c]) { |
87 | default: { | |
219
9792cfe63b80
added resolve-conflicts and delete-conflicts to help text and fixed crash with unknown cmd options
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
213
diff
changeset
|
88 | fprintf(stderr, "Unknown option -%c\n\n", arg[c]); |
11 | 89 | cmd_args_free(a); |
90 | return NULL; | |
91 | } | |
68
f6d3db6113d3
added verbose option + encryption flag fixes
Mike Becker <universe@uap-core.de>
parents:
62
diff
changeset
|
92 | case 'v': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
93 | cmd_map_put(a->options, "verbose", NOARG); |
68
f6d3db6113d3
added verbose option + encryption flag fixes
Mike Becker <universe@uap-core.de>
parents:
62
diff
changeset
|
94 | break; |
f6d3db6113d3
added verbose option + encryption flag fixes
Mike Becker <universe@uap-core.de>
parents:
62
diff
changeset
|
95 | } |
11 | 96 | case 'k': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
97 | option = "key"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
98 | optchar = 'k'; |
11 | 99 | break; |
100 | } | |
101 | case 'p': { | |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
102 | cmd_map_put(a->options, "plain", NOARG); |
11 | 103 | break; |
104 | } | |
45
e3839719b079
added crypt command line option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
30
diff
changeset
|
105 | case 'c': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
106 | cmd_map_put(a->options, "crypt", NOARG); |
45
e3839719b079
added crypt command line option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
30
diff
changeset
|
107 | break; |
e3839719b079
added crypt command line option
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
30
diff
changeset
|
108 | } |
14
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
109 | case 'a': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
110 | cmd_map_put(a->options, "all", NOARG); |
14
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
111 | break; |
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
112 | } |
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
113 | case 'l': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
114 | cmd_map_put(a->options, "list", NOARG); |
14
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
115 | break; |
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
116 | } |
297
3cbe57eeaed1
adds option to sort dav list by lastmodified date
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
219
diff
changeset
|
117 | case 'd': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
118 | cmd_map_put(a->options, "date", NOARG); |
297
3cbe57eeaed1
adds option to sort dav list by lastmodified date
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
219
diff
changeset
|
119 | break; |
3cbe57eeaed1
adds option to sort dav list by lastmodified date
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
219
diff
changeset
|
120 | } |
14
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
121 | case 't': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
122 | cmd_map_put(a->options, "type", NOARG); |
14
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
123 | break; |
d1a43035d3a2
added some options to list command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
11
diff
changeset
|
124 | } |
18
651989681053
recursive list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
125 | case 'R': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
126 | cmd_map_put(a->options, "recursive", NOARG); |
18
651989681053
recursive list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
127 | break; |
651989681053
recursive list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
14
diff
changeset
|
128 | } |
182
ca07f14f7bfe
added override option for copy/move
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
119
diff
changeset
|
129 | case 'O': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
130 | cmd_map_put(a->options, "override", NOARG); |
182
ca07f14f7bfe
added override option for copy/move
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
119
diff
changeset
|
131 | break; |
ca07f14f7bfe
added override option for copy/move
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
119
diff
changeset
|
132 | } |
199
f448fc8c9191
enabled cert verification
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
186
diff
changeset
|
133 | case 'i': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
134 | cmd_map_put(a->options, "insecure", NOARG); |
199
f448fc8c9191
enabled cert verification
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
186
diff
changeset
|
135 | break; |
f448fc8c9191
enabled cert verification
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
186
diff
changeset
|
136 | } |
213
cd870d5f8659
added options for extended list flags and changed version output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
212
diff
changeset
|
137 | case 'N': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
138 | cmd_map_put(a->options, "noinput", NOARG); |
212
01e80c7cfe96
added noinput option to dav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
209
diff
changeset
|
139 | break; |
01e80c7cfe96
added noinput option to dav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
209
diff
changeset
|
140 | } |
213
cd870d5f8659
added options for extended list flags and changed version output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
212
diff
changeset
|
141 | case 'e': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
142 | cmd_map_put(a->options, "extended", NOARG); |
213
cd870d5f8659
added options for extended list flags and changed version output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
212
diff
changeset
|
143 | break; |
cd870d5f8659
added options for extended list flags and changed version output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
212
diff
changeset
|
144 | } |
338
c7f3fe4abdb2
dav get-property supports xml property output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
334
diff
changeset
|
145 | case 'x': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
146 | cmd_map_put(a->options, "xml", NOARG); |
338
c7f3fe4abdb2
dav get-property supports xml property output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
334
diff
changeset
|
147 | break; |
c7f3fe4abdb2
dav get-property supports xml property output
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
334
diff
changeset
|
148 | } |
517
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
149 | case 'F': { |
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
150 | option = "finfo"; |
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
151 | optchar = 'F'; |
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
152 | break; |
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
153 | } |
309
8a474d2ad209
adds option to dav get for downloading only the directory structure
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
297
diff
changeset
|
154 | case 'S': { |
8a474d2ad209
adds option to dav get for downloading only the directory structure
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
297
diff
changeset
|
155 | // undocumented hidden feature |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
156 | cmd_map_put(a->options, "structure", NOARG); |
309
8a474d2ad209
adds option to dav get for downloading only the directory structure
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
297
diff
changeset
|
157 | break; |
8a474d2ad209
adds option to dav get for downloading only the directory structure
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
297
diff
changeset
|
158 | } |
330
54819e984a19
adds dav get option to keep existing files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
315
diff
changeset
|
159 | case 'K': { |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
160 | cmd_map_put(a->options, "keep", NOARG); |
330
54819e984a19
adds dav get option to keep existing files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
315
diff
changeset
|
161 | break; |
54819e984a19
adds dav get option to keep existing files
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
315
diff
changeset
|
162 | } |
11 | 163 | case 'o': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
164 | option = "output"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
165 | optchar = 'o'; |
11 | 166 | break; |
167 | } | |
30
9a5a7a513a96
added update option for list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
18
diff
changeset
|
168 | case 'u': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
169 | option = "update"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
170 | optchar = 'u'; |
30
9a5a7a513a96
added update option for list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
18
diff
changeset
|
171 | break; |
9a5a7a513a96
added update option for list and get
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
18
diff
changeset
|
172 | } |
62
3b813c57c106
added property-set and property-get command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
45
diff
changeset
|
173 | case 'n': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
174 | option = "namespace"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
175 | optchar = 'n'; |
62
3b813c57c106
added property-set and property-get command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
45
diff
changeset
|
176 | break; |
3b813c57c106
added property-set and property-get command
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
45
diff
changeset
|
177 | } |
209
d24761f1e07c
added lock and unlock commands to dav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
199
diff
changeset
|
178 | case 'L': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
179 | option = "lock"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
180 | optchar = 'L'; |
209
d24761f1e07c
added lock and unlock commands to dav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
199
diff
changeset
|
181 | break; |
d24761f1e07c
added lock and unlock commands to dav
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
199
diff
changeset
|
182 | } |
315
7db4dbf4e6f9
adds lock timeout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
309
diff
changeset
|
183 | case 'T': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
184 | option = "timeout"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
185 | optchar = 'T'; |
315
7db4dbf4e6f9
adds lock timeout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
309
diff
changeset
|
186 | break; |
7db4dbf4e6f9
adds lock timeout
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
309
diff
changeset
|
187 | } |
517
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
188 | /* |
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
189 | case 'P': { |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
190 | option = "progressfile"; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
191 | optchar = 'F'; |
355
5da2cf15eb44
adds primitive progress indicator
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
338
diff
changeset
|
192 | break; |
5da2cf15eb44
adds primitive progress indicator
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
338
diff
changeset
|
193 | } |
517
8531b63accae
adds option to store a file info property
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
476
diff
changeset
|
194 | */ |
476
b4e3453e2b49
adds -V option to get, get-property and info commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
376
diff
changeset
|
195 | case 'V': { |
b4e3453e2b49
adds -V option to get, get-property and info commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
376
diff
changeset
|
196 | option = "version"; |
b4e3453e2b49
adds -V option to get, get-property and info commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
376
diff
changeset
|
197 | optchar = 'V'; |
b4e3453e2b49
adds -V option to get, get-property and info commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
376
diff
changeset
|
198 | break; |
b4e3453e2b49
adds -V option to get, get-property and info commands
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
376
diff
changeset
|
199 | } |
11 | 200 | } |
201 | } | |
202 | } else if(option) { | |
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
203 | cmd_map_put(a->options, option, arg); |
11 | 204 | option = NULL; |
205 | } else { | |
206 | a->argv[a->argc++] = arg; | |
207 | } | |
208 | } | |
375
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
209 | if(option) { |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
210 | fprintf(stderr, |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
211 | "Missing argument for option -%c\n\n", optchar); |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
212 | cmd_args_free(a); |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
213 | return NULL; |
39fd327f81da
fixes options parser to correctly report missing arguments
Mike Becker <universe@uap-core.de>
parents:
364
diff
changeset
|
214 | } |
11 | 215 | |
216 | return a; | |
217 | } | |
218 | ||
747
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
219 | char* cmd_getoption(CmdArgs *arg, const char *name) { |
efbd59642577
ucx 3 update, basic dav commands work, most stuff is still broken
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
721
diff
changeset
|
220 | return cxMapGet(arg->options, cx_hash_key_str(name)); |
11 | 221 | } |