void ResourceConverter::convert() { for (auto file : listResources(m_resourceRoot , textureDir , textureExtension)) { load(textureDir, file, textureExtension); } for (auto file : listResources(m_resourceRoot , mmlDir , mmlExtension)) { load(mmlDir, file, mmlExtension); } collect(); compress(); encrypt(); write(); }
int main(int argc, char **argv) { const char *inputImage = NULL, *outputImage = NULL, *string = NULL, *file = NULL; unsigned long mode = 0, result = 0, id = 0; Elf32_ResType type = ELF_RES_TYPE_UNKNOWN; extern char *optarg; int c; while ((c = getopt(argc, argv, "lhupart:n:s:f:i:o:I:")) != EOF) { switch (c) { case 'h': fprintf(stderr, "Usage: elfres [-u/-p/-l/-a/-r] [-t type] [-s string] [-f file]\n" " [-I id] [-i input img] [-o output img]\n\n" " -p --> print a resource specified by an id.\n" " -u --> update a resource.\n" " -l --> list resources in the specified input file.\n" " -a --> add a resource to the specified input file\n" " and store it in the output file, if specified.\n" " -r --> remove a resource to the specified input file\n" " and store it in the output file, if specified.\n" " the resource is identified by an index (-n).\n"); return 0; case 'l': mode = OPERATION_LIST; break; case 'p': mode = OPERATION_PRINT; break; case 'a': mode = OPERATION_ADD; break; case 'r': mode = OPERATION_REM; break; case 'u': mode = OPERATION_UPDATE; break; case 't': if (!strcasecmp(optarg, "binary")) type = ELF_RES_TYPE_BINARY; else if (!strcasecmp(optarg, "string")) type = ELF_RES_TYPE_STRING; else type = ELF_RES_TYPE_UNKNOWN; break; case 's': string = optarg; break; case 'f': file = optarg; break; case 'I': id = strtoul(optarg, NULL, 10); break; case 'i': inputImage = optarg; break; case 'o': outputImage = optarg; break; default: break; } } if (!inputImage) { fprintf(stderr, "elfres: No input file was specified.\n"); return 0; } if (!outputImage) outputImage = inputImage; switch (mode) { case OPERATION_LIST: result = listResources(inputImage); break; case OPERATION_PRINT: if (!id) fprintf(stderr, "elfres: no identifier was specified (-I).\n"); else result = printResource(inputImage, id); break; case OPERATION_ADD: case OPERATION_UPDATE: if (!id) fprintf(stderr, "elfres: no identifier was specified (-I).\n"); else if (!string && !file) fprintf(stderr, "elfres: no data source was specified (-s/-f).\n"); else result = addResource(mode, inputImage, outputImage, type, id, string, file); break; case OPERATION_REM: if (!id) fprintf(stderr, "elfres: no identifier was specified (-I).\n"); else result = removeResource(inputImage, outputImage, id); break; default: fprintf(stderr, "elfres: unknown mode of operation.\n"); break; } if (!result) fprintf(stderr, "elfres: the operation did not complete successfully.\n"); return result; }
void console_start() { char **parameters; char command[512]; int exit = 0; strcpy(currentDirPrompt, "/"); strcpy(currentDirId, ROOT_DIR_ID); do { printf("%s > ", currentDirPrompt); readCommand(command); // El trim de las commons tira error a veces.. string_trim(&command); // Ignore empty enter if (command[0] != '\0') { parameters = string_split(command, " "); if (string_equals_ignore_case(parameters[0], "format")) { format(); } else if (string_equals_ignore_case(parameters[0], "df")) { diskFree(); } else if (string_equals_ignore_case(parameters[0], "rm")) { deleteResource(parameters); } else if (string_equals_ignore_case(parameters[0], "mv")) { moveResource(parameters[1], parameters[2]); } else if (string_equals_ignore_case(parameters[0], "rename")) { renameResource(parameters[1], parameters[2]); } else if (string_equals_ignore_case(parameters[0], "mkdir")) { makeDir(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "cd")) { changeDir(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "ll")) { listResources(); } else if (string_equals_ignore_case(parameters[0], "md5sum")) { md5sum(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "cp")) { copyFile(parameters); } else if (string_equals_ignore_case(parameters[0], "blocks")) { printFileBlocks(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "catb")) { saveBlockContents(parameters); } else if (string_equals_ignore_case(parameters[0], "cpb")) { copyBlock(parameters); } else if (string_equals_ignore_case(parameters[0], "rmb")) { deleteBlock(parameters); } else if (string_equals_ignore_case(parameters[0], "nodestat")) { printNodeStatus(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "enablen")) { enableNode(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "disablen")) { disableNode(parameters[1]); } else if (string_equals_ignore_case(parameters[0], "help")) { help(); } else if (string_equals_ignore_case(parameters[0], "exit")) { exit = 1; } else if (string_equals_ignore_case(parameters[0], "\n")) { // ignore enter } else { printf("Invalid command \n"); } freeSplits(parameters); } } while (!exit); printf("bye\n"); }