aboutsummaryrefslogtreecommitdiff
path: root/src/docker.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-05-20 10:07:16 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-05-20 10:11:29 -0400
commit67975a5944706e382fe1e7b00d226715c6242358 (patch)
treee93dd37df57f49d4327567479521014f380206e5 /src/docker.c
parent30c9945e0da19305ebad88a2835653ff4f409313 (diff)
downloadstasis-67975a5944706e382fe1e7b00d226715c6242358.tar.gz
Mass attempt at windows portability
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);
}