X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cli%2Fcli_diff_images.cpp;h=ba8df3e92a440afd5c29f3fafeb967559d281d2c;hb=7a9fb5103e052150232b64cb5d99374cda3f1234;hp=91f07c11871666c3a816dfd59f25ac9267c8ec06;hpb=447b3d5c7402b0a9e780a26dfed76376e723ac94;p=apitrace diff --git a/cli/cli_diff_images.cpp b/cli/cli_diff_images.cpp index 91f07c1..ba8df3e 100644 --- a/cli/cli_diff_images.cpp +++ b/cli/cli_diff_images.cpp @@ -30,66 +30,53 @@ #include "cli.hpp" #include "os_string.hpp" -#include "trace_tools.hpp" +#include "os_process.hpp" +#include "cli_resources.hpp" static const char *synopsis = "Identify differences between two image dumps."; static os::String find_command(void) { -#define CLI_DIFF_IMAGES_COMMAND "snapdiff.py" - - return trace::findFile("scripts/" CLI_DIFF_IMAGES_COMMAND, - APITRACE_SCRIPTS_INSTALL_DIR "/" CLI_DIFF_IMAGES_COMMAND, - true); - + return findScript("snapdiff.py"); } static void usage(void) { - char *args[3]; - os::String command = find_command(); + if (!command.length()) { + exit(1); + } - args[0] = (char *) command.str(); - args[1] = (char *) "--help"; - args[2] = NULL; - -#ifdef _WIN32 - std::cerr << "The 'apitrace diff-images' command is not yet supported on this O/S.\n"; -#else - execv(command.str(), args); -#endif + char *args[4]; + args[0] = (char *) "python"; + args[1] = (char *) command.str(); + args[2] = (char *) "--help"; + args[3] = NULL; - std::cerr << "Error: Failed to execute " << args[0] << "\n"; + os::execute(args); } static int command(int argc, char *argv[]) { int i; - char **args = new char* [argc+2]; os::String command = find_command(); - - args[0] = (char *) command.str(); - - for (i = 0; i < argc; i++) { - args[i+1] = argv[i]; + if (!command.length()) { + return 1; } - args[i+1] = NULL; - -#ifdef _WIN32 - std::cerr << "The 'apitrace diff-images' command is not yet supported on this O/S.\n"; -#else - execv(command.str(), args); -#endif - - std::cerr << "Error: Failed to execute " << args[0] << "\n"; + std::vector args; + args.push_back("python"); + args.push_back(command.str()); + for (i = 1; i < argc; i++) { + args.push_back(argv[i]); + } + args.push_back(NULL); - return 1; + return os::execute((char * const *)&args[0]); } const Command diff_images_command = {