From 44d961f119d44f6c533ce1d57d87ab79897e9ecd Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Mon, 27 Oct 2014 15:33:36 +0100 Subject: [PATCH] Cli: Fix integer formatting in repository command refs #7255 --- lib/cli/repositoryutility.cpp | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/cli/repositoryutility.cpp b/lib/cli/repositoryutility.cpp index af881d604..b8775eb36 100644 --- a/lib/cli/repositoryutility.cpp +++ b/lib/cli/repositoryutility.cpp @@ -42,20 +42,30 @@ using namespace icinga; Dictionary::Ptr RepositoryUtility::GetArgumentAttributes(const std::vector& arguments) { - Dictionary::Ptr attr = make_shared(); + Dictionary::Ptr attrs = make_shared(); BOOST_FOREACH(const String& kv, arguments) { std::vector tokens; boost::algorithm::split(tokens, kv, boost::is_any_of("=")); - if (tokens.size() == 2) { - attr->Set(tokens[0], tokens[1]); - } else + if (tokens.size() != 2) { Log(LogWarning, "cli") << "Cannot parse passed attributes: " << boost::algorithm::join(tokens, "="); + continue; + } + + Value value; + + try { + value = Convert::ToDouble(tokens[1]); + } catch (...) { + value = tokens[1]; + } + + attrs->Set(tokens[0], value); } - return attr; + return attrs; } String RepositoryUtility::GetRepositoryConfigPath(void) -- 2.40.0