From b0a0985c739cb5be9cb62ea76cbdfd71b555cf9b Mon Sep 17 00:00:00 2001
From: Patrick Jentsch
Date: Mon, 27 Jan 2020 13:48:24 +0100
Subject: [PATCH] Add wrapper script and fix path error
---
Dockerfile | 1 +
merge_images | 2 +-
wrapper/merge_images | 39 +++++++++++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 1 deletion(-)
create mode 100755 wrapper/merge_images
diff --git a/Dockerfile b/Dockerfile
index ab18c64..cb1ad31 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -19,5 +19,6 @@ RUN apt-get update \
# Install merge_images
COPY merge_images /usr/local/bin
+
ENTRYPOINT ["merge_images"]
CMD ["--help"]
diff --git a/merge_images b/merge_images
index 11470f5..b8c9e88 100755
--- a/merge_images
+++ b/merge_images
@@ -24,7 +24,7 @@ def parse_arguments():
def merge_images(input_dir, output_dir):
os.makedirs(output_dir, exist_ok=True)
- os.system('ls -v {i}/*.* >> {i}file_list.txt'.format(i=input_dir))
+ os.system('ls -v {i}/*.* >> {i}/file_list.txt'.format(i=input_dir))
os.system('convert @{i}/file_list.txt {o}/combined.tiff'.format(i=input_dir,
o=output_dir))
diff --git a/wrapper/merge_images b/wrapper/merge_images
new file mode 100755
index 0000000..e0ae5c4
--- /dev/null
+++ b/wrapper/merge_images
@@ -0,0 +1,39 @@
+#!/usr/bin/env python3
+# coding=utf-8
+
+import argparse
+import os
+import subprocess
+
+container_image = 'gitlab.ub.uni-bielefeld.de:4567/sfb1288inf/merge_images:latest'
+container_input_dir = '/input'
+container_output_dir = '/output'
+uid = str(os.getuid())
+gid = str(os.getgid())
+
+parser = argparse.ArgumentParser(add_help=False)
+parser.add_argument(
+ '-i',
+ dest='input_dir',
+ required=False
+)
+parser.add_argument(
+ '-o',
+ dest='output_dir',
+ required=False
+)
+args, remaining_args = parser.parse_known_args()
+
+cmd = ['docker', 'run', '--rm', '-it', '-u', uid + ':' + gid]
+if args.input_dir is not None:
+ host_input_dir = os.path.abspath(args.input_dir)
+ cmd += ['-v', host_input_dir + ':' + container_input_dir]
+ remaining_args += ['-i', container_input_dir]
+if args.output_dir is not None:
+ host_output_dir = os.path.abspath(args.output_dir)
+ cmd += ['-v', host_output_dir + ':' + container_output_dir]
+ remaining_args += ['-o', container_output_dir]
+cmd.append(container_image)
+cmd += remaining_args
+
+subprocess.run(cmd)