mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 15:57:02 -05:00
34 lines
869 B
C++
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;
|
|
} |