X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=cli%2Fcli_diff_images.cpp;h=ba8df3e92a440afd5c29f3fafeb967559d281d2c;hb=9d42c85063ac13f574ffd00b8be31bbd39f29a70;hp=3b5507a7cc4202da012f860e563535786466574f;hpb=a19a87e02f91dd0cf4d6217a5ea7125f8509ed85;p=apitrace diff --git a/cli/cli_diff_images.cpp b/cli/cli_diff_images.cpp index 3b5507a..ba8df3e 100644 --- a/cli/cli_diff_images.cpp +++ b/cli/cli_diff_images.cpp @@ -30,61 +30,53 @@ #include "cli.hpp" #include "os_string.hpp" -#include "trace_resource.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) { - return trace::findScript("snapdiff.py"); + 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 = {