[doc_tool] Moved executing of external programms from Model to FSHelper
[hsd_doku_tool.git] / src / FSHelper.h
index bcadeb6..abbd7f3 100644 (file)
@@ -17,7 +17,7 @@
 
 /////////////////////////////////////////////////
 /// \brief Diese Klasse beinhaltet Dateisystemfunktionen
-///        Basierend auf C++11 und POSIX standart und funktinieren
+///        Basierend auf C++11 und POSIX-1 standart und funktinieren
 ///        somit auf Windows und Linux.
 /////////////////////////////////////////////////
 class FSHelper : public Object
@@ -59,17 +59,21 @@ public:
 /// \brief Diese funktion kopiert eine Datei.
 /// \param src Quelldatei
 /// \param dest Zieldatei
-/// \return bool Bei Erfolg true, ansonsten false
 /////////////////////////////////////////////////
-    bool copyFile(std::string const &src, std::string const &dest);
+    void copyFile(std::string const &src, std::string const &dest);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion kopiert einen Ordner.
 /// \param src Quellordner
 /// \param dest Zielordner
-/// \return bool Bei Erfolg true, ansonsten false
 /////////////////////////////////////////////////
-    bool copyFolder(std::string const &src, std::string const &dest);
+    void copyDir(std::string const &src, std::string const &dest);
+
+/////////////////////////////////////////////////
+/// \brief Gibt aktuelles Arbeitsverzeichnis zurück.
+/// \return aktuelles Arbeitsverzeichnis.
+/////////////////////////////////////////////////
+    std::string getCurrentWorkingDir();
 
 /////////////////////////////////////////////////
 /// \brief Strenge Dateinamenüberprüfung. Überprüft
@@ -113,16 +117,14 @@ public:
 /////////////////////////////////////////////////
 /// \brief Erstellt einen Ordner.
 /// \param dir pfad des zu erstellenden Ordners.
-/// \return true bei erfolg, false bei fehler
 /////////////////////////////////////////////////
-    bool makeDir(std::string const& dir);
+    void makeDir(std::string const& dir);
 
 /////////////////////////////////////////////////
 /// \brief Erstellt eine Datei.
 /// \param dir pfad der zu erstellenden Datei.
-/// \return true bei erfolg, false bei fehler
 /////////////////////////////////////////////////
-    bool createFile(std::string const& path);
+    void createFile(std::string const& path);
 
 /////////////////////////////////////////////////
 /// \brief Diese funktion gibt alle Deteien eines
@@ -149,7 +151,54 @@ public:
 ///        false nein)
 /// \return true bei erfolg, false bei fehler
 /////////////////////////////////////////////////
-    bool listFoldersRecursive(const std::string& path, std::vector<std::string>& folders,const bool showHiddenDirs);
+    bool listDirsRecursive(const std::string& path, std::vector<std::string>& dirs,const bool showHiddenDirs);
+
+/////////////////////////////////////////////////
+/// \brief Diese funktion führt einen Befehl/ein Programm
+///        aus.
+/// \param path Pfad in dem der Befehl ausgeführt werden soll
+/// \param command Auszuführender Befehl
+/// \param params Bafehlsparameter
+/// \param log optional, Pfad zu einer datei, in der die Konsolenausgabe
+///        des Befehls geschrieben werden soll.
+/////////////////////////////////////////////////
+    void executeCommand(const std::string& path, const std::string& command, std::vector<std::string> params, std::string log = "");
+
+/////////////////////////////////////////////////
+/// \brief Diese funktion setzt einen Dynamischen
+///        Loader, der für das ausführen von Programmen
+///        mit executeCommand auf Linux Systemen
+///        verwendet werden soll.
+/// \param Loader Pfad zum Loader
+/////////////////////////////////////////////////
+    void setLinuxDynLoader(std::string Loader);
+
+/////////////////////////////////////////////////
+/// \brief Diese funktion gibt den gesetzten Loader
+///        retour.
+/// \return gesetzter Loader
+/////////////////////////////////////////////////
+    std::string getLinuxDynLoader();
+
+/////////////////////////////////////////////////
+/// \brief Diese funktion entfernt einen gesetzten Loader.
+///        Programme die mit executeCommand ausgeführt
+///        werden, verwenden dann den standard Loader
+///        des Systems.
+/////////////////////////////////////////////////
+    void removeLinuxDynLoader();
+
+/////////////////////////////////////////////////
+/// \brief Durchsucht PATH nach übergebenem Kommando.
+///        Gibt vollständigen Pfad zur Datei des Kommandos
+///        retour.
+/// \param executable Kommando dessen executable gesucht werden soll
+/// \return vollständiger Pfad zur executable.
+/////////////////////////////////////////////////
+    std::string findExecutableInPath(std::string executable);
+
+private:
+    std::string mLinuxDynLoader;
 
 };