14 #define GSA_IS_EXPERIMENTAL
15 #define DEBUG_GSA_TOOL */
17 #include <gwenhywfar/debug.h>
18 #include <gwenhywfar/cgui.h>
44 fname, strerror(errno));
59 fname, strerror(errno));
68 int main(
int argc,
char **argv) {
83 "Show this help screen",
84 "Show this help screen"
90 fprintf(stderr,
"Could not initialize Gwenhywfar.\n");
104 #ifdef GSA_IS_EXPERIMENTAL
105 fprintf(stderr,
"\n");
106 fprintf(stderr,
"\n");
107 fprintf(stderr,
"=================== WARNING ===================\n");
108 fprintf(stderr,
"This tool is still EXPERIMENTAL !!!\n");
109 fprintf(stderr,
"Please DON'T USE it with your data files !\n");
110 fprintf(stderr,
"===============================================\n");
111 fprintf(stderr,
"\n");
112 fprintf(stderr,
"\n");
122 fprintf(stderr,
"ERROR: Could not parse arguments main\n");
130 I18N(
"GWEN's Simple Archiver"));
137 I18N(
" [GLOBAL OPTIONS] COMMAND "
138 "[LOCAL OPTIONS]\n"));
140 I18N(
"\nGlobal Options:\n"));
142 fprintf(stderr,
"ERROR: Could not create help string\n");
146 I18N(
"\nCommands:\n\n"));
149 " This command creates an archive file"
153 " Add files and folders to an archive file\n\n"));
156 " List files and folders in an archive file\n\n"));
160 " Check integrity of files and folders in an archive file\n\n"));
173 fprintf(stderr,
"ERROR: Command needed.\n");
177 if (strcasecmp(cmd,
"create")==0) {
180 else if (strcasecmp(cmd,
"add")==0) {
183 else if (strcasecmp(cmd,
"list")==0) {
186 else if (strcasecmp(cmd,
"check")==0) {
189 else if (strcasecmp(cmd,
"extract")==0) {
192 else if (strcasecmp(cmd,
"sign")==0) {
195 else if (strcasecmp(cmd,
"verify")==0) {
198 else if (strcasecmp(cmd,
"mkkey")==0) {
201 else if (strcasecmp(cmd,
"rfi")==0) {
205 fprintf(stderr,
"ERROR: Unknown command \"%s\".\n", cmd);
212 "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)