UNIXworkcode

/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2019 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #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 /* MAIN_H */