From 4ffb4c65825ab0a5ded00ff799b494097e7bd143 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sat, 5 Jun 2021 23:33:44 +0200 Subject: Make svg-flatten auto-search for cargo dependencies in all call sites --- svg-flatten/src/main.cpp | 70 +++--------------------------------------------- 1 file changed, 3 insertions(+), 67 deletions(-) (limited to 'svg-flatten/src/main.cpp') diff --git a/svg-flatten/src/main.cpp b/svg-flatten/src/main.cpp index 1fce67b..d89da7c 100644 --- a/svg-flatten/src/main.cpp +++ b/svg-flatten/src/main.cpp @@ -1,18 +1,16 @@ #include #include -#include -#include #include #include #include #include #include #include -#include #include #include "vec_core.h" #include +#include "util.h" using argagg::parser_results; using argagg::parser; @@ -354,70 +352,8 @@ int main(int argc, char **argv) { } string dpi_str = to_string(dpi); - const char *homedir; - if ((homedir = getenv("HOME")) == NULL) { - homedir = getpwuid(getuid())->pw_dir; - } - string homedir_s(homedir); - string loc_in_home = homedir_s + "/.cargo/bin/usvg"; - - const char *command_line[] = {nullptr, "--keep-named-groups", "--dpi", dpi_str.c_str(), barf.c_str(), frob.c_str(), NULL}; - bool found_usvg = false; - int usvg_rc=-1; - for (int i=0; i<3; i++) { - const char *usvg_envvar; - switch (i) { - case 0: - if ((usvg_envvar = getenv("USVG")) == NULL) { - continue; - } else { - command_line[0] = "usvg"; - } - break; - - case 1: - command_line[0] = "usvg"; - break; - - case 2: - command_line[0] = loc_in_home.c_str(); - break; - } - - struct subprocess_s subprocess; - int rc = subprocess_create(command_line, subprocess_option_inherit_environment, &subprocess); - if (rc) { - cerr << "Error calling usvg!" << endl; - return EXIT_FAILURE; - } - - usvg_rc = -1; - rc = subprocess_join(&subprocess, &usvg_rc); - if (rc) { - cerr << "Error calling usvg!" << endl; - return EXIT_FAILURE; - } - - rc = subprocess_destroy(&subprocess); - if (rc) { - cerr << "Error calling usvg!" << endl; - return EXIT_FAILURE; - } - - if (usvg_rc == 255) { - continue; - } - found_usvg = true; - break; - } - - if (!found_usvg) { - cerr << "Error: Cannot find usvg. Is it installed and in $PATH?" << endl; - return EXIT_FAILURE; - } - - if (usvg_rc) { - cerr << "usvg returned an error code: " << usvg_rc << endl; + const char *command_line[] = {nullptr, "--keep-named-groups", "--dpi", dpi_str.c_str(), barf.c_str(), frob.c_str(), nullptr}; + if (run_cargo_command("usvg", command_line, "USVG")) { return EXIT_FAILURE; } } -- cgit