175 :
176c_cmd{bp::search_path("perl")},
177m_version{}, m_sources{}, m_env{boost::this_process::environment()}
178{
179 char *bindir = gnc_path_get_bindir();
180 c_fq_wrapper = std::string(bindir) + "/finance-quote-wrapper";
181 g_free(bindir);
182 StrVec args{"-w", c_fq_wrapper, "-v"};
183 auto [rv, sources, errors] = run_cmd(args, empty_string);
184 if (rv)
185 {
186 std::string err{bl::translate("Failed to initialize Finance::Quote: ")};
187 for (const auto& err_line : errors)
188 err += err_line.empty() ? "" : err_line + "\n";
190 }
191 if (!errors.empty())
192 {
193 std::string err{bl::translate("Finance::Quote check returned error ")};
194 for(const auto& err_line : errors)
195 err += err.empty() ? "" : err_line + "\n";
197 }
198 auto version{sources.front()};
199 if (version.empty())
200 {
201 std::string err{bl::translate("No Finance::Quote Version")};
203 }
204 m_version = std::move(version);
205 sources.erase(sources.begin());
206 m_sources = std::move(sources);
207 std::sort (m_sources.begin(), m_sources.end());
208
209 set_api_key(av_api_key, av_api_env);
210 set_api_key(yh_api_key, yh_api_env);
211}