64 void test() { |
64 void test() { |
65 |
65 |
66 } |
66 } |
67 |
67 |
68 int main(int argc, char **argv) { |
68 int main(int argc, char **argv) { |
|
69 if(argc < 2) { |
|
70 fprintf(stderr, "Missing command\n"); |
|
71 print_usage(argv[0]); |
|
72 return -1; |
|
73 } |
|
74 |
|
75 char *cmd = argv[1]; |
|
76 CmdArgs *args = cmd_parse_args(argc - 2, argv + 2); |
|
77 if(!args) { |
|
78 print_usage(argv[0]); |
|
79 cmd_args_free(args); |
|
80 return -1; |
|
81 } |
|
82 |
69 xmlGenericErrorFunc fnc = xmlerrorfnc; |
83 xmlGenericErrorFunc fnc = xmlerrorfnc; |
70 initGenericErrorDefaultFunc(&fnc); |
84 initGenericErrorDefaultFunc(&fnc); |
71 ctx = dav_context_new(); |
85 ctx = dav_context_new(); |
72 dav_add_namespace(ctx, "apache", "http://apache.org/dav/props/"); |
86 dav_add_namespace(ctx, "apache", "http://apache.org/dav/props/"); |
73 load_config(ctx); |
87 int cfgret = load_config(ctx); |
|
88 int ret = EXIT_FAILURE; |
74 printxmlerror = 0; |
89 printxmlerror = 0; |
75 #ifdef DO_THE_TEST |
90 #ifdef DO_THE_TEST |
76 test(); |
91 test(); |
77 return 0; |
92 return 0; |
78 #endif |
93 #endif |
79 |
94 if(!strcmp(cmd, "check") || !strcmp(cmd, "check-config")) { |
80 memcpy(ctx->http_proxy, get_http_proxy(), sizeof(Proxy)); |
95 if(!cfgret) { |
81 memcpy(ctx->https_proxy, get_https_proxy(), sizeof(Proxy)); |
96 fprintf(stdout, "Configuration OK.\n"); |
82 |
97 ret = EXIT_SUCCESS; |
83 if(argc < 2) { |
98 } else { |
84 fprintf(stderr, "Missing command\n"); |
99 /* no output, the warnings are written by load_config */ |
85 print_usage(argv[0]); |
100 ret = EXIT_FAILURE; |
86 return -1; |
101 } |
87 } |
102 } else if(!cfgret) { |
88 |
103 if(!strcasecmp(cmd, "list") || !strcasecmp(cmd, "ls")) { |
89 char *cmd = argv[1]; |
104 ret = cmd_list(args); |
90 CmdArgs *args = cmd_parse_args(argc - 2, argv + 2); |
105 } else if(!strcasecmp(cmd, "get")) { |
91 if(!args) { |
106 ret = cmd_get(args); |
92 print_usage(argv[0]); |
107 } else if(!strcasecmp(cmd, "put")) { |
93 cmd_args_free(args); |
108 ret = cmd_put(args); |
94 return -1; |
109 } else if( |
95 } |
110 !strcasecmp(cmd, "remove") || |
96 |
111 !strcasecmp(cmd, "rm") || |
97 |
112 !strcasecmp(cmd, "delete")) |
98 int ret = -1; |
113 { |
99 if(!strcasecmp(cmd, "list") || !strcasecmp(cmd, "ls")) { |
114 ret = cmd_remove(args); |
100 ret = cmd_list(args); |
115 } else if(!strcasecmp(cmd, "mkdir") || !strcasecmp(cmd, "mkcol")) { |
101 } else if(!strcasecmp(cmd, "get")) { |
116 ret = cmd_mkdir(args); |
102 ret = cmd_get(args); |
117 } else if(!strcasecmp(cmd, "copy") || !strcasecmp(cmd, "cp")) { |
103 } else if(!strcasecmp(cmd, "put")) { |
118 ret = cmd_move(args, true); |
104 ret = cmd_put(args); |
119 } else if(!strcasecmp(cmd, "move") || !strcasecmp(cmd, "mv")) { |
105 } else if( |
120 ret = cmd_move(args, false); |
106 !strcasecmp(cmd, "remove") || |
121 } else if(!strcasecmp(cmd, "date")) { |
107 !strcasecmp(cmd, "rm") || |
122 ret = cmd_date(args); |
108 !strcasecmp(cmd, "delete")) |
123 } else if(!strcasecmp(cmd, "set-property")) { |
109 { |
124 ret = cmd_set_property(args); |
110 ret = cmd_remove(args); |
125 } else if(!strcasecmp(cmd, "get-property")) { |
111 } else if(!strcasecmp(cmd, "mkdir") || !strcasecmp(cmd, "mkcol")) { |
126 ret = cmd_get_property(args); |
112 ret = cmd_mkdir(args); |
127 } else if(!strcasecmp(cmd, "lock")) { |
113 } else if(!strcasecmp(cmd, "copy") || !strcasecmp(cmd, "cp")) { |
128 ret = cmd_lock(args); |
114 ret = cmd_move(args, true); |
129 } else if(!strcasecmp(cmd, "unlock")) { |
115 } else if(!strcasecmp(cmd, "move") || !strcasecmp(cmd, "mv")) { |
130 ret = cmd_unlock(args); |
116 ret = cmd_move(args, false); |
131 } else if(!strcasecmp(cmd, "info")) { |
117 } else if(!strcasecmp(cmd, "date")) { |
132 ret = cmd_info(args); |
118 ret = cmd_date(args); |
133 } else if(!strcasecmp(cmd, "add-repository")) { |
119 } else if(!strcasecmp(cmd, "set-property")) { |
134 ret = cmd_add_repository(args); |
120 ret = cmd_set_property(args); |
135 } else if(!strcasecmp(cmd, "list-repositories")) { |
121 } else if(!strcasecmp(cmd, "get-property")) { |
136 ret = list_repositories(); |
122 ret = cmd_get_property(args); |
137 } else if(!strcasecmp(cmd, "version") || !strcasecmp(cmd, "-version") |
123 } else if(!strcasecmp(cmd, "lock")) { |
138 || !strcasecmp(cmd, "--version")) { |
124 ret = cmd_lock(args); |
139 fprintf(stderr, "dav %s\n", DAV_VERSION); |
125 } else if(!strcasecmp(cmd, "unlock")) { |
140 } else { |
126 ret = cmd_unlock(args); |
141 print_usage(argv[0]); |
127 } else if(!strcasecmp(cmd, "info")) { |
142 } |
128 ret = cmd_info(args); |
|
129 } else if(!strcasecmp(cmd, "add-repository")) { |
|
130 ret = cmd_add_repository(args); |
|
131 } else if(!strcasecmp(cmd, "list-repositories")) { |
|
132 ret = list_repositories(); |
|
133 } else if(!strcasecmp(cmd, "version") || !strcasecmp(cmd, "-version") || !strcasecmp(cmd, "--version")) { |
|
134 fprintf(stderr, "dav %s\n", DAV_VERSION); |
|
135 } else { |
|
136 print_usage(argv[0]); |
|
137 } |
143 } |
138 |
144 |
139 dav_context_destroy(ctx); |
145 dav_context_destroy(ctx); |
140 cmd_args_free(args); |
146 cmd_args_free(args); |
141 free_config(); |
147 free_config(); |
193 fprintf(stderr, " -v verbose output (all commands)\n"); |
199 fprintf(stderr, " -v verbose output (all commands)\n"); |
194 fprintf(stderr, "\n"); |
200 fprintf(stderr, "\n"); |
195 fprintf(stderr, "Config commands:\n"); |
201 fprintf(stderr, "Config commands:\n"); |
196 fprintf(stderr, " add-repository\n"); |
202 fprintf(stderr, " add-repository\n"); |
197 fprintf(stderr, " list-repositories\n"); |
203 fprintf(stderr, " list-repositories\n"); |
|
204 fprintf(stderr, " check (or check-config)\n"); |
198 fprintf(stderr, "\n"); |
205 fprintf(stderr, "\n"); |
199 fprintf(stderr, |
206 fprintf(stderr, |
200 "Instead of an url you can pass a repository name " |
207 "Instead of an url you can pass a repository name " |
201 "with an optional path:\n"); |
208 "with an optional path:\n"); |
202 fprintf(stderr, " <repository>/path/\n"); |
209 fprintf(stderr, " <repository>/path/\n"); |