summaryrefslogtreecommitdiff
path: root/src/postprocessor.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/postprocessor.vala')
-rw-r--r--src/postprocessor.vala44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/postprocessor.vala b/src/postprocessor.vala
new file mode 100644
index 0000000..2d036c9
--- /dev/null
+++ b/src/postprocessor.vala
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+/*
+ * Copyright (C) 2022 Alexander Vogt
+ * Author: Alexander Vogt <a.vogt@fulguritus.com>
+ *
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
+ * license.
+ */
+
+public class Postprocessor {
+
+ public Postprocessor(){
+
+ }
+
+ public int process(string script, string mime_type, bool keep_original, string source_file, string arguments) throws Error {
+ // Code copied and adapted from https://valadoc.org/glib-2.0/GLib.Process.spawn_sync.html
+ string[] spawn_args = {script, mime_type, keep_original ? "true" : "false", source_file, arguments };
+ string[] spawn_env = Environ.get ();
+ string process_stdout;
+ string process_stderr;
+ int process_status;
+
+ print ("Executing script%s\n", script);
+ Process.spawn_sync (null, // inherit parent's working dir
+ spawn_args,
+ spawn_env,
+ SpawnFlags.SEARCH_PATH,
+ null,
+ out process_stdout,
+ out process_stderr,
+ out process_status);
+ debug ("status: %d\n", process_status);
+ debug ("STDOUT: \n");
+ debug ("process_stdout");
+ debug ("STDERR: \n");
+ debug ("process_stderr");
+
+ return process_status;
+ }
+}