#!/usr/bin/env python3 """ Exec certbot with flags. Gathers domain names to give to certbot, and then execs certbot. "Required" to send multiple domain names File managed by Puppet """ # Script should be compatible with both Python2 and Python3 from __future__ import print_function import sys import os.path if len(sys.argv) != 2: print('Takes exactly one argument: the certificates name', file=sys.stderr) sys.exit(1) cert_name = sys.argv[1] here = os.path.dirname(sys.argv[0]) cmdline = ['certbot', '--config', os.path.join(here, cert_name + ".ini")] domainlist_file = os.path.join(here, cert_name + '.domains') with open(domainlist_file) as f: domains = [line.strip() for line in f if line and line[0] != '#'] if not domains: print('No domains configured. Check {}'.format(domainlist_file)) sys.exit(1) for domain in domains: cmdline += ['-d', domain] cmdline += ['certonly'] os.execvp('certbot', cmdline)