#!/usr/bin/env python import os import sys import subprocess PDFTK_DOCKER_IMAGE = 'agileek/pdftk' def main(*argv): file_args = {'stamp', 'output'} files = {} last_arg = None pdftk_args = argv[1:] if (pdftk_args): files['input'] = pdftk_args[0] for arg in pdftk_args[1:]: if last_arg: if last_arg in file_args: files[last_arg] = arg last_arg = None else: last_arg = arg volumes = set() for val in files.values(): if val not in {'-', 'PROMPT'}: volumes.add(os.path.dirname(os.path.abspath(os.path.normpath(val)))) docker_args = [ 'docker', 'run', '-i', '--rm', '--user', '{uid}:{gid}'.format(uid=os.getuid(), gid=os.getgid()), ] for volume in sorted(volumes): docker_args.extend(['-v', '{volume}:{volume}:z'.format(volume=volume)]) docker_args.append(PDFTK_DOCKER_IMAGE) docker_args.extend(pdftk_args) return subprocess.call(docker_args) if __name__ == '__main__': exit(main(*sys.argv))