#ifndef MAIN_H
#define MAIN_H
#include <time.h>
#include <curl/curl.h>
#include "optparser.h"
#include <libidav/webdav.h>
#include "tar.h"
#include "version.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
DavResource *res;
char *path;
} GetResource;
typedef struct {
FILE *out;
int isstdout;
int64_t total;
int64_t cur;
int64_t last_res_cur;
int64_t last_res_total;
DavResource *last_resource;
time_t ts;
} Progress;
typedef int(*getfunc)(DavCfgRepository *, GetResource *, CmdArgs *,
void *);
void print_usage(
char *cmd);
int update_progress(DavResource *res,
int64_t total,
int64_t now, Progress *p);
void download_progress(DavResource *res,
int64_t total,
int64_t now,
void *data);
int cmd_list(CmdArgs *args);
void ls_print_list_elm(DavResource *res,
char *parent, CmdArgs *args);
void ls_print_elm(DavResource *res,
char *parent, CmdArgs *args);
int cmd_get(CmdArgs *args, DavBool export);
int get_resource(DavCfgRepository *repo, GetResource *res, CmdArgs *a,
void *unused);
int resource2tar(DavCfgRepository *repo, GetResource *res, CmdArgs *a, TarOutputStream *tar);
int cmd_put(CmdArgs *args, DavBool import);
int put_entry(
DavCfgRepository *repo,
CmdArgs *a,
DavSession *sn,
char *path,
char *file,
uint32_t finfo,
DavBool root,
DavBool printfile,
DavBool ignoredirerr);
int put_tar(DavCfgRepository *repo, CmdArgs *a, DavSession *sn,
char *tarfile,
char *path);
int put_file(
DavCfgRepository *repo,
CmdArgs *a,
DavSession *sn,
const char *path,
const char *name,
uint32_t finfo,
const char *fpath,
FILE *in,
off_t len);
int cmd_edit(CmdArgs *args);
int cmd_remove(CmdArgs *args);
int cmd_mkdir(CmdArgs *args);
int cmd_move(CmdArgs *args,
int cp);
int cmd_rename(CmdArgs *args);
int cmd_date(CmdArgs *args);
int cmd_get_property(CmdArgs *args);
int cmd_set_property(CmdArgs *args);
int cmd_remove_property(CmdArgs *args);
int cmd_lock(CmdArgs *args);
int cmd_unlock(CmdArgs *args);
int cmd_info(CmdArgs *args);
int cmd_checkout(CmdArgs *args);
int cmd_checkin(CmdArgs *args);
int cmd_uncheckout(CmdArgs *args);
int cmd_versioncontrol(CmdArgs *args);
int cmd_list_versions(CmdArgs *args);
DavResource* find_version(DavResource *res,
char *version);
char* stdin2str();
char* xml2str(DavXmlNode *node);
void printxmldoc(
FILE *out,
char *root,
char *rootns, DavXmlNode *content);
int cmd_add_repository(CmdArgs *args);
int cmd_remove_repository(CmdArgs *args);
int cmd_list_repositories(
void);
int cmd_repository_url(CmdArgs *args);
int cmd_add_user(CmdArgs *args);
int cmd_list_users(CmdArgs *args);
int cmd_remove_user(CmdArgs *args);
int cmd_edit_user(CmdArgs *args);
int cmd_set_master_password(CmdArgs *args);
int cmd_complete(CmdArgs *args);
int shell_completion(
char *cmd, CmdArgs *args,
int index);
int url_completion(CmdArgs *args,
char *url);
#ifdef __cplusplus
}
#endif
#endif