aboutsummaryrefslogtreecommitdiff
path: root/src/docker.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/docker.c')
-rw-r--r--src/docker.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/docker.c b/src/docker.c
index f8c9c11..872e06a 100644
--- a/src/docker.c
+++ b/src/docker.c
@@ -36,7 +36,20 @@ int docker_script(const char *image, char *data, unsigned flags) {
return -1;
}
+#if defined(OMC_OS_WINDOWS)
+ char tempfile[PATH_MAX];
+ strcpy(tempfile, "OMC.docker.XXXXXX");
+ if (mkstemp(tempfile)) {
+ // creating temp file failed
+ return -1;
+ }
+ infile = fopen(tempfile, "w");
+ for (size_t i = 0; i < strlen(data); i++) {
+ fputc(data[i], infile);
+ }
+#else
infile = fmemopen(data, strlen(data), "r");
+#endif
if (!infile) {
// opening memory file for reading failed
return -1;
@@ -49,6 +62,9 @@ int docker_script(const char *image, char *data, unsigned flags) {
} while (!feof(infile));
fclose(infile);
+#if defined(OMC_OS_WINDOWS)
+ remove(tempfile);
+#endif
return pclose(outfile);
}