]> granicus.if.org Git - icinga2/commitdiff
Cli: Make sure that ChangeLog directory exists on 'repository commit'
authorMichael Friedrich <michael.friedrich@netways.de>
Tue, 28 Oct 2014 18:16:48 +0000 (19:16 +0100)
committerMichael Friedrich <michael.friedrich@netways.de>
Tue, 28 Oct 2014 18:28:38 +0000 (19:28 +0100)
refs #7255

lib/cli/repositorycommitcommand.cpp
lib/cli/repositoryobjectcommand.cpp
lib/cli/repositoryobjectcommand.hpp
lib/cli/repositoryutility.cpp

index e93cc6b8e0c1273e579f8d3e8f4dec67ff7323cb..b29e94af6bef7fe243b96e6f6360c4110ca737f2 100644 (file)
 #include "cli/repositoryutility.hpp"
 #include "base/logger.hpp"
 #include "base/application.hpp"
-#include "base/convert.hpp"
-#include "base/dynamicobject.hpp"
-#include "base/dynamictype.hpp"
-#include "base/serializer.hpp"
-#include "base/netstring.hpp"
-#include "base/stdiostream.hpp"
-#include "base/debug.hpp"
-#include "base/objectlock.hpp"
-#include "base/console.hpp"
-#include <boost/foreach.hpp>
-#include <boost/algorithm/string/join.hpp>
-#include <boost/algorithm/string/replace.hpp>
+#include "base/utility.hpp"
 #include <fstream>
 #include <iostream>
 
@@ -71,10 +60,13 @@ ImpersonationLevel RepositoryCommitCommand::GetImpersonationLevel(void) const
  */
 int RepositoryCommitCommand::Run(const boost::program_options::variables_map& vm, const std::vector<std::string>& ap) const
 {
+       /* create required repositories first, just in case */
+       Utility::MkDirP(RepositoryUtility::GetRepositoryChangeLogPath(), 0750);
+
        if (vm.count("simulate")) {
                RepositoryUtility::PrintChangeLog(std::cout);
                std::cout << "\n";
-               std::cout << "Simulation not yet implemented (#)\n";
+               std::cout << "Simulation not yet implemented.\n";
                //TODO
                return 1;
        } else if (vm.count("clear")) {
index e7bd3cdb2550499e5e9945319a62e5d2d0fd83af..36bfb6108f5ea03319468e826e22c88f3de489a1 100644 (file)
@@ -155,6 +155,11 @@ int RepositoryObjectCommand::GetMaxArguments(void) const
        return -1;
 }
 
+ImpersonationLevel RepositoryObjectCommand::GetImpersonationLevel(void) const
+{
+       return ImpersonateRoot;
+}
+
 /**
  * The entry point for the "repository <type> <add/remove/list>" CLI command.
  *
index c8773d7f36fb139bb11b64616da933597d644dda..9472f5e8648b60882bf780e6230d31fc946f8ee1 100644 (file)
@@ -50,6 +50,7 @@ public:
        virtual int GetMaxArguments(void) const;
        virtual void InitParameters(boost::program_options::options_description& visibleDesc,
            boost::program_options::options_description& hiddenDesc) const;
+       virtual ImpersonationLevel GetImpersonationLevel(void) const;
        virtual std::vector<String> GetPositionalSuggestions(const String& word) const;
        virtual int Run(const boost::program_options::variables_map& vm, const std::vector<std::string>& ap) const;
 
index 52306fcd84f2f210f6d6c301e84331449fe40b0b..5796155f7298264153804438745e1485cb2d8e08 100644 (file)
@@ -590,15 +590,10 @@ void RepositoryUtility::FormatChangelogEntry(std::ostream& fp, const Dictionary:
        boost::algorithm::to_lower(type);
        Dictionary::Ptr attrs = change->Get("attrs");
 
-       fp << " " << ConsoleColorTag(Console_ForegroundBlue | Console_Bold) << type << ConsoleColorTag(Console_Normal) << " '";
+       fp << " " << ConsoleColorTag(Console_ForegroundMagenta | Console_Bold) << type << ConsoleColorTag(Console_Normal) << " '";
        fp << ConsoleColorTag(Console_ForegroundBlue | Console_Bold) << change->Get("name") << ConsoleColorTag(Console_Normal) << "'";
 
-       if (!attrs || attrs->GetLength() == 0) {
-               fp << "\n";
-               return;
-       }
-
-       fp << " with attributes: \n";
+       fp << ": \n";
 
        BOOST_FOREACH(const Dictionary::Pair& kv, attrs) {
                /* skip the name */