#!@python@/bin/python import os import sys import shlex from xdg import BaseDirectory from pathlib import Path from configparser import ConfigParser import logging from logging.handlers import SysLogHandler syslog = SysLogHandler( address = '/dev/log' ) logging.basicConfig(handlers = [syslog], level = logging.DEBUG) config = ConfigParser() config.optionxform = str config_file = BaseDirectory.load_first_config('notmuch-ssh') if config_file is not None: config.read(config_file) original_command = os.environ.get('SSH_ORIGINAL_COMMAND') if original_command is None: sys.exit(os.EX_USAGE) original_command = shlex.split(original_command, comments = True) logging.debug("Original command: %s", original_command) if len(original_command) < 1: sys.exit(os.EX_USAGE) config_section = original_command[0] logging.debug("Config section: %s", config_section) config_environment = config[config_section] if config.has_section(config_section) else config[config.default_section] logging.info("Config environment: %s", {**config_environment}) logging.info("notmuch %s", original_command[1:]) os.execvpe('@notmuch@/bin/notmuch', ['notmuch'] + original_command[1:], {**os.environ, **config_environment})