31 |
31 |
32 #include <curl/curl.h> |
32 #include <curl/curl.h> |
33 #include "optparser.h" |
33 #include "optparser.h" |
34 #include <libidav/webdav.h> |
34 #include <libidav/webdav.h> |
35 |
35 |
|
36 #include "tar.h" |
36 #include "version.h" |
37 #include "version.h" |
37 |
38 |
38 #ifdef __cplusplus |
39 #ifdef __cplusplus |
39 extern "C" { |
40 extern "C" { |
40 #endif |
41 #endif |
41 |
42 |
42 typedef struct { |
43 typedef struct { |
43 DavResource *res; |
44 DavResource *res; |
44 char *path; |
45 char *path; |
45 } GetResource; |
46 } GetResource; |
|
47 |
|
48 typedef int(*getfunc)(Repository *, GetResource *, CmdArgs *, void *); |
46 |
49 |
47 void print_usage(char *cmd); |
50 void print_usage(char *cmd); |
48 char* password_input(char *prompt); |
51 char* password_input(char *prompt); |
49 int request_auth(Repository *repo, DavSession *sn, CmdArgs *args); |
52 int request_auth(Repository *repo, DavSession *sn, CmdArgs *args); |
50 |
53 |
51 int cmd_list(CmdArgs *args); |
54 int cmd_list(CmdArgs *args); |
52 void ls_print_list_elm(DavResource *res, char *parent, CmdArgs *args); |
55 void ls_print_list_elm(DavResource *res, char *parent, CmdArgs *args); |
53 void ls_print_elm(DavResource *res, char *parent, CmdArgs *args); |
56 void ls_print_elm(DavResource *res, char *parent, CmdArgs *args); |
54 |
57 |
55 int cmd_get(CmdArgs *args); |
58 int cmd_get(CmdArgs *args); |
56 int get_resource(Repository *repo, DavResource *res, CmdArgs *a, char *out); |
59 int get_resource(Repository *repo, GetResource *res, CmdArgs *a, void *unused); |
|
60 int resource2tar(Repository *repo, GetResource *res, CmdArgs *a, TarOutputStream *tar); |
57 |
61 |
58 int cmd_put(CmdArgs *args); |
62 int cmd_put(CmdArgs *args); |
59 int put_entry(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *file, DavBool root); |
63 int put_entry(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *file, DavBool root); |
|
64 int put_tar(Repository *repo, CmdArgs *a, DavSession *sn, char *tarfile, char *path); |
60 int put_file(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *name, FILE *in, off_t len); |
65 int put_file(Repository *repo, CmdArgs *a, DavSession *sn, char *path, char *name, FILE *in, off_t len); |
61 |
66 |
62 int cmd_remove(CmdArgs *args); |
67 int cmd_remove(CmdArgs *args); |
63 int cmd_mkdir(CmdArgs *args); |
68 int cmd_mkdir(CmdArgs *args); |
64 |
69 |