14 #define GSA_IS_EXPERIMENTAL 15 #define DEBUG_GSA_TOOL */ 17 #include <gwenhywfar/debug.h> 18 #include <gwenhywfar/cgui.h> 45 fname, strerror(errno));
60 fname, strerror(errno));
69 int main(
int argc,
char **argv)
85 "Show this help screen",
86 "Show this help screen" 92 fprintf(stderr,
"Could not initialize Gwenhywfar.\n");
106 #ifdef GSA_IS_EXPERIMENTAL 107 fprintf(stderr,
"\n");
108 fprintf(stderr,
"\n");
109 fprintf(stderr,
"=================== WARNING ===================\n");
110 fprintf(stderr,
"This tool is still EXPERIMENTAL !!!\n");
111 fprintf(stderr,
"Please DON'T USE it with your data files !\n");
112 fprintf(stderr,
"===============================================\n");
113 fprintf(stderr,
"\n");
114 fprintf(stderr,
"\n");
124 fprintf(stderr,
"ERROR: Could not parse arguments main\n");
132 I18N(
"GWEN's Simple Archiver"));
139 I18N(
" [GLOBAL OPTIONS] COMMAND " 140 "[LOCAL OPTIONS]\n"));
142 I18N(
"\nGlobal Options:\n"));
144 fprintf(stderr,
"ERROR: Could not create help string\n");
148 I18N(
"\nCommands:\n\n"));
151 " This command creates an archive file" 155 " Add files and folders to an archive file\n\n"));
158 " List files and folders in an archive file\n\n"));
162 " Check integrity of files and folders in an archive file\n\n"));
175 fprintf(stderr,
"ERROR: Command needed.\n");
179 if (strcasecmp(cmd,
"create")==0) {
182 else if (strcasecmp(cmd,
"add")==0) {
185 else if (strcasecmp(cmd,
"list")==0) {
188 else if (strcasecmp(cmd,
"check")==0) {
191 else if (strcasecmp(cmd,
"extract")==0) {
194 else if (strcasecmp(cmd,
"sign")==0) {
197 else if (strcasecmp(cmd,
"verify")==0) {
200 else if (strcasecmp(cmd,
"mkkey")==0) {
203 else if (strcasecmp(cmd,
"rfi")==0) {
207 fprintf(stderr,
"ERROR: Unknown command \"%s\".\n", cmd);
214 "WARNING: Could not deinitialize Gwenhywfar.\n");
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int verifyArchive(GWEN_DB_NODE *dbArgs, int argc, char **argv)
struct GWEN_DB_NODE GWEN_DB_NODE
int GWEN_Buffer_AllocRoom(GWEN_BUFFER *bf, uint32_t size)
uint32_t GWEN_Buffer_GetMaxUnsegmentedWrite(GWEN_BUFFER *bf)
void GWEN_Logger_SetLevel(const char *logDomain, GWEN_LOGGER_LEVEL l)
int readFile(const char *fname, GWEN_BUFFER *dbuf)
int main(int argc, char **argv)
int GWEN_Buffer_AdjustUsedBytes(GWEN_BUFFER *bf)
#define GWEN_ARGS_FLAGS_HELP
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
char * GWEN_Buffer_GetPosPointer(const GWEN_BUFFER *bf)
#define GWEN_ARGS_RESULT_HELP
int GWEN_Buffer_IncrementPos(GWEN_BUFFER *bf, uint32_t i)
#define GWEN_ARGS_RESULT_ERROR
#define GWEN_ARGS_MODE_STOP_AT_FREEPARAM
int checkArchive(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int GWEN_Args_Usage(const GWEN_ARGS *args, GWEN_BUFFER *ubuf, GWEN_ARGS_OUTTYPE ot)
#define GWEN_ARGS_MODE_ALLOW_FREEPARAM
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
int releaseFillIn(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int createArchive(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int listArchive(GWEN_DB_NODE *dbArgs, int argc, char **argv)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
int mkArchiveKey(GWEN_DB_NODE *dbArgs, int argc, char **argv)
#define GWEN_ARGS_FLAGS_LAST
int GWEN_Logger_Open(const char *logDomain, const char *ident, const char *file, GWEN_LOGGER_LOGTYPE logtype, GWEN_LOGGER_FACILITY facility)
int add2Archive(GWEN_DB_NODE *dbArgs, int argc, char **argv)
int GWEN_Args_Check(int argc, char **argv, int startAt, uint32_t mode, const GWEN_ARGS *args, GWEN_DB_NODE *db)
#define DBG_INFO(dbg_logger, format, args...)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
#define GWENHYWFAR_VERSION_FULL_STRING
void GWEN_Gui_SetGui(GWEN_GUI *gui)
GWEN_GUI * GWEN_Gui_CGui_new(void)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
int signArchive(GWEN_DB_NODE *dbArgs, int argc, char **argv)