* Parse args. */
| 228 | * Parse args. |
| 229 | */ |
| 230 | int main(int argc, char* const argv[]) |
| 231 | { |
| 232 | char *prog = argv[0]; |
| 233 | Bundle bundle; |
| 234 | bool wantUsage = false; |
| 235 | int result = 1; // pessimistically assume an error. |
| 236 | int tolerance = 0; |
| 237 | |
| 238 | /* default to compression */ |
| 239 | bundle.setCompressionMethod(ZipEntry::kCompressDeflated); |
| 240 | |
| 241 | if (argc < 2) { |
| 242 | wantUsage = true; |
| 243 | goto bail; |
| 244 | } |
| 245 | |
| 246 | if (argv[1][0] == 'v') |
| 247 | bundle.setCommand(kCommandVersion); |
| 248 | else if (argv[1][0] == 'd') |
| 249 | bundle.setCommand(kCommandDump); |
| 250 | else if (argv[1][0] == 'l') |
| 251 | bundle.setCommand(kCommandList); |
| 252 | else if (argv[1][0] == 'a') |
| 253 | bundle.setCommand(kCommandAdd); |
| 254 | else if (argv[1][0] == 'r') |
| 255 | bundle.setCommand(kCommandRemove); |
| 256 | else if (argv[1][0] == 'p') |
| 257 | bundle.setCommand(kCommandPackage); |
| 258 | else if (argv[1][0] == 'c') |
| 259 | bundle.setCommand(kCommandCrunch); |
| 260 | else if (argv[1][0] == 's') |
| 261 | bundle.setCommand(kCommandSingleCrunch); |
| 262 | else { |
| 263 | fprintf(stderr, "ERROR: Unknown command '%s'\n", argv[1]); |
| 264 | wantUsage = true; |
| 265 | goto bail; |
| 266 | } |
| 267 | argc -= 2; |
| 268 | argv += 2; |
| 269 | |
| 270 | /* |
| 271 | * Pull out flags. We support "-fv" and "-f -v". |
| 272 | */ |
| 273 | while (argc && argv[0][0] == '-') { |
| 274 | /* flag(s) found */ |
| 275 | const char* cp = argv[0] +1; |
| 276 | |
| 277 | while (*cp != '\0') { |
| 278 | switch (*cp) { |
| 279 | case 'v': |
| 280 | bundle.setVerbose(true); |
| 281 | break; |
| 282 | case 'a': |
| 283 | bundle.setAndroidList(true); |
| 284 | break; |
| 285 | case 'c': |
| 286 | argc--; |
| 287 | argv++; |
nothing calls this directly
no test coverage detected