mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-23 09:26:27 -06:00
Use common input file parameter for gnucash-cli --add-price-quotes
As gnucash and most gnucash-cli commands will work on an input file it makes sense to use the common positional input-file parameter everywhere. It's still optional for a normal gnucash run though. It will fall back to to last-used file as before. A --add-price-quotes run on the other hand will bail out with an error message. As this command is typically run unattended in a cron script it's safer to explicitly request a file to work on.
This commit is contained in:
parent
4af7ea0f0a
commit
1ea284d868
@ -55,7 +55,7 @@ namespace Gnucash {
|
||||
private:
|
||||
void configure_program_options (void);
|
||||
|
||||
std::string m_quotes_file;
|
||||
bool m_add_quotes;
|
||||
};
|
||||
|
||||
}
|
||||
@ -70,12 +70,11 @@ Gnucash::GnucashCli::parse_command_line (int argc, char **argv)
|
||||
{
|
||||
Gnucash::CoreApp::parse_command_line (argc, argv);
|
||||
|
||||
m_add_quotes = m_opt_map["add-price-quotes"].as<bool>();
|
||||
|
||||
if (m_opt_map.count ("namespace"))
|
||||
gnc_prefs_set_namespace_regexp(m_opt_map["namespace"].
|
||||
as<std::string>().c_str());
|
||||
|
||||
if (m_opt_map.count ("add-price-quotes"))
|
||||
m_quotes_file = m_opt_map["add-price-quotes"].as<std::string>();
|
||||
}
|
||||
|
||||
// Define command line options specific to gnucash-cli.
|
||||
@ -84,7 +83,7 @@ Gnucash::GnucashCli::configure_program_options (void)
|
||||
{
|
||||
bpo::options_description quotes_options(_("Price Retrieval Options"));
|
||||
quotes_options.add_options()
|
||||
("add-price-quotes", bpo::value<std::string>(),
|
||||
("add-price-quotes", bpo::bool_switch(),
|
||||
N_("Add price quotes to given GnuCash datafile.\n"))
|
||||
("namespace", bpo::value<std::string>(),
|
||||
N_("Regular expression determining which namespace commodities will be retrieved"));
|
||||
@ -97,10 +96,20 @@ Gnucash::GnucashCli::start ([[maybe_unused]] int argc, [[maybe_unused]] char **a
|
||||
{
|
||||
Gnucash::CoreApp::start();
|
||||
|
||||
if (m_quotes_file.empty())
|
||||
return 1;
|
||||
if (m_add_quotes)
|
||||
{
|
||||
if (m_file_to_load.empty())
|
||||
{
|
||||
std::cerr << bl::translate("Missing data file parameter") << "\n\n"
|
||||
<< *m_opt_desc.get();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return Gnucash::add_quotes (m_file_to_load);
|
||||
}
|
||||
|
||||
return Gnucash::add_quotes (m_quotes_file);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -622,6 +622,9 @@ Gnucash::CoreApp::parse_command_line (int argc, char **argv)
|
||||
m_log_to_filename = m_opt_map["logto"].
|
||||
as<std::string>().c_str();
|
||||
|
||||
if (m_opt_map.count ("input-file"))
|
||||
m_file_to_load = m_opt_map["input-file"].as<std::string>();
|
||||
|
||||
if (args_remaining)
|
||||
file_to_load = args_remaining[0];
|
||||
}
|
||||
@ -645,7 +648,11 @@ Gnucash::CoreApp::add_common_program_options (void)
|
||||
("logto", bpo::value<std::string>(),
|
||||
N_("File to log into; defaults to \"/tmp/gnucash.trace\"; can be \"stderr\" or \"stdout\"."))
|
||||
("gsettings-prefix", bpo::value<std::string>(),
|
||||
N_("Set the prefix for gsettings schemas for gsettings queries. This can be useful to have a different settings tree while debugging."));
|
||||
N_("Set the prefix for gsettings schemas for gsettings queries. This can be useful to have a different settings tree while debugging."))
|
||||
("input-file", bpo::value<std::string>(),
|
||||
N_("[datafile]"));
|
||||
|
||||
m_pos_opt_desc.add("input-file", -1);
|
||||
|
||||
m_opt_desc->add (common_options);
|
||||
}
|
||||
|
@ -45,6 +45,7 @@ protected:
|
||||
int gtk_show_help = 0;
|
||||
std::string m_app_name;
|
||||
std::string tagline;
|
||||
std::string m_file_to_load;
|
||||
|
||||
std::unique_ptr<bpo::options_description> m_opt_desc;
|
||||
bpo::variables_map m_opt_map;
|
||||
|
@ -304,8 +304,7 @@ namespace Gnucash {
|
||||
void configure_program_options (void);
|
||||
|
||||
std::string m_gtk_help_msg;
|
||||
std::string m_file_to_load;
|
||||
std::string m_quotes_file; // Deprecated will be removed in gnucash 5.0
|
||||
bool m_add_quotes; // Deprecated will be removed in gnucash 5.0
|
||||
};
|
||||
|
||||
}
|
||||
@ -327,15 +326,11 @@ Gnucash::Gnucash::parse_command_line (int argc, char **argv)
|
||||
exit(0);
|
||||
}
|
||||
|
||||
m_add_quotes = m_opt_map["add-price-quotes"].as<bool>();
|
||||
|
||||
if (m_opt_map.count ("namespace"))
|
||||
gnc_prefs_set_namespace_regexp (m_opt_map["namespace"].
|
||||
as<std::string>().c_str());
|
||||
|
||||
if (m_opt_map.count ("add-price-quotes"))
|
||||
m_quotes_file = m_opt_map["add-price-quotes"].as<std::string>();
|
||||
|
||||
if (m_opt_map.count ("input-file"))
|
||||
m_file_to_load = m_opt_map["input-file"].as<std::string>();
|
||||
}
|
||||
|
||||
// Define command line options specific to gnucash.
|
||||
@ -361,18 +356,14 @@ Gnucash::Gnucash::configure_program_options (void)
|
||||
|
||||
bpo::options_description depr_options(_("Deprecated Options"));
|
||||
depr_options.add_options()
|
||||
("add-price-quotes", bpo::value<std::string>(),
|
||||
("add-price-quotes", bpo::bool_switch(),
|
||||
N_("Add price quotes to given GnuCash datafile.\n"
|
||||
"Note this option has been deprecated and will be removed in GnuCash 5.0.\n"
|
||||
"Please use \"gnucash-cli --add-price-quotes\" instead."))
|
||||
("namespace", bpo::value<std::string>(),
|
||||
N_("Regular expression determining which namespace commodities will be retrieved"
|
||||
"Note this option has been deprecated and will be removed in GnuCash 5.0.\n"
|
||||
"Please use \"gnucash-cli --add-price-quotes\" instead."))
|
||||
("input-file", bpo::value<std::string>(),
|
||||
N_("[datafile]"));
|
||||
|
||||
m_pos_opt_desc.add("input-file", -1);
|
||||
"Please use \"gnucash-cli --add-price-quotes\" instead."));
|
||||
|
||||
m_opt_desc->add (app_options).add (depr_options);
|
||||
}
|
||||
@ -384,11 +375,18 @@ Gnucash::Gnucash::start ([[maybe_unused]] int argc, [[maybe_unused]] char **argv
|
||||
|
||||
// Test for the deprecated add-price-quotes option and run it
|
||||
// Will be removed in 5.0
|
||||
if (!m_quotes_file.empty())
|
||||
if (m_add_quotes)
|
||||
{
|
||||
std::cerr << bl::translate ("The '--add-price-quotes' option to gnucash has been deprecated and will be removed in GnuCash 5.0. "
|
||||
"Please use 'gnucash-cli --add-price-quotes' instead.") << "\n";
|
||||
return add_quotes (m_quotes_file);
|
||||
if (m_file_to_load.empty())
|
||||
{
|
||||
std::cerr << bl::translate("Missing data file parameter") << "\n\n"
|
||||
<< *m_opt_desc.get();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return add_quotes (m_file_to_load);
|
||||
}
|
||||
|
||||
/* Now the module files are looked up, which might cause some library
|
||||
|
Loading…
Reference in New Issue
Block a user