int main(int argc, char** argv) { int index; umask(0); if (argc < 5) { print_usage(); exit(-1); } strcpy(tmp_dir, EER_DEFAULT_TMP); for (index = 1; index < argc; index++) { if (strlen(argv[index]) != 2) { arg_error = 1; index = argc; } else if (strncmp(argv[index], "-i", 2) == 0) { // Input filename if (index == argc - 1) { arg_error = 1; printf("Missing input filename.\n\n"); index = argc; } else if (strlen(argv[index + 1]) > PATH_MAX - 1) { arg_error = 2; index = argc; } else { index++; strcpy(input_filename, argv[index]); if (!path_exists(input_filename)) { arg_error = 4; printf("Input filename '%s' does not exist.\n\n", input_filename); index = argc; } } } else if (strncmp(argv[index], "-o", 2) == 0) { // Output filename if (index == argc - 1) { arg_error = 1; printf("Missing output filename.\n\n"); index = argc; } else if (strlen(argv[index + 1]) > PATH_MAX - 1) { arg_error = 2; index = argc; } else { index++; strcpy(output_filename, argv[index]); } } else if (strncmp(argv[index], "-t", 2) == 0) { // Temp folder specified if (index == argc - 1) { arg_error = 1; printf("Missing temp directory parameter.\n\n"); index = argc; } else if (strlen(argv[index + 1]) > PATH_MAX - 1) { arg_error = 2; index = argc; } else { index++; strcpy(tmp_dir, argv[index]); if (!path_exists(tmp_dir)) { arg_error = 5; printf("Temp directory '%s' does not exist.\n\n", tmp_dir); index = argc; } } } else if (strncmp(argv[index], "-d", 2) == 0) { dont_unzip = 1; } else if (strncmp(argv[index], "-c", 2) == 0) { check_ramdisk = 1; } else if (strncmp(argv[index], "-u", 2) == 0) { use_dump_image = 1; } else if (strncmp(argv[index], "-0", 2) == 0) { ramdisk_loc = 1; } else if (strncmp(argv[index], "-2", 2) == 0) { ramdisk_loc = 3; } else { arg_error = 3; printf("Invalid argument '%s'.\n\n", argv[index]); index = argc; } } if (arg_error != 0) { print_usage(); exit(-1); } else { extract_ramdisk(); exit(0); } }
int main(int argc, const char** argv) { return extract_ramdisk(argc, argv); }