MatN work for versatile appimage creation for all types of os
[goodguy/cinelerra.git] / cinelerra-5.1 / tools / makeappimagetool / includes / subprocess.h
diff --git a/cinelerra-5.1/tools/makeappimagetool/includes/subprocess.h b/cinelerra-5.1/tools/makeappimagetool/includes/subprocess.h
new file mode 100644 (file)
index 0000000..8d0a508
--- /dev/null
@@ -0,0 +1,32 @@
+#pragma once
+
+// system headers
+#include <cstdio>
+#include <unordered_map>
+#include <string>
+#include <utility>
+#include <vector>
+
+// local headers
+#include "subprocess_result.h"
+
+namespace linuxdeploy {
+    namespace subprocess {
+        typedef std::unordered_map<std::string, std::string> subprocess_env_map_t;
+
+        class subprocess {
+        private:
+            std::vector<std::string> args_{};
+            std::unordered_map<std::string, std::string> env_{};
+
+        public:
+            subprocess(std::initializer_list<std::string> args, subprocess_env_map_t env = {});
+
+            explicit subprocess(std::vector<std::string> args, subprocess_env_map_t env = {});
+
+            subprocess_result run() const;
+
+            std::string check_output() const;
+        };
+    }
+}