in src/native/tools/zstd_compress_file/zstd_compress_file.cpp [85:131]
int parse_command_line(
int argc,
char **argv,
operation *op,
fs::path *uncompressed_path,
fs::path *compressed_path,
fs::path *delta_basis_path)
{
switch (argc)
{
case 3: // <uncompressed> <compressed>
*op = operation::compress;
*uncompressed_path = argv[1];
*compressed_path = argv[2];
break;
case 4:
if (0 == strcmp(argv[1], DECOMPRESS_SWITCH)) // -d <compressed> <uncompressed>
{
*op = operation::decompress;
*compressed_path = argv[2];
*uncompressed_path = argv[3];
}
else
{
*op = operation::compress_with_basis;
*uncompressed_path = argv[1];
*delta_basis_path = argv[2];
*compressed_path = argv[3];
}
break;
case 5:
if (0 == strcmp(argv[1], DECOMPRESS_SWITCH))
{
*op = operation::decompress_with_basis;
*compressed_path = argv[2];
*delta_basis_path = argv[3];
*uncompressed_path = argv[4];
}
else
{
*op = operation::invalid;
return -1;
}
}
return 0;
}