dav/main.c

changeset 252
6b8e287269fc
parent 241
da7ace67deab
child 256
54433cb371df
equal deleted inserted replaced
251:7534cb97b9ab 252:6b8e287269fc
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");

mercurial