Files
ImHex-Patterns/tests/magic/source/main.cpp

34 lines
869 B
C++

#include <pl/helpers/file.hpp>
#include <pl/helpers/guards.hpp>
#include <fmt/format.h>
#include <cstdlib>
#include <magic.h>
#define EXIT_SKIP 77
int main(int argc, char **argv) {
// Any number of arguments other than 3 are invalid
if (argc != 3)
return EXIT_FAILURE;
// Extract command line arguments
const std::string magicName = argv[1];
const std::fs::path magicFilePath = argv[2];
fmt::print("Running test {} on test file {}\n", magicName, magicFilePath.filename().string());
magic_t ctx = magic_open(MAGIC_NONE);
PL_ON_SCOPE_EXIT { magic_close(ctx); };
if (ctx == nullptr)
return EXIT_FAILURE;
if (magic_compile(ctx, magicFilePath.string().c_str()) != 0) {
fmt::print("Error during compilation: {}\n", magic_error(ctx));
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}