#!/usr/bin/env python3

import argparse
import shlex
import os

from ticterm import log

DEFAULT_DIRECTORY = 'build/docs'
URL_PATH_ROOT     = 'python-ticterm'
NGINX_PORT        = '8080'

def main():
  log.config.update(verbosity=log.Level.INFO)
  
  parser = argparse.ArgumentParser()
  
  parser.add_argument('-d', '--directory', default=DEFAULT_DIRECTORY)
  parser.add_argument('-v', '--verbose', action='store_true')
  
  opts, argv = parser.parse_known_args()
  
  log.info('opts:', opts)
  log.info('argv:', argv)
  
  if opts.verbose:
    log.config.update(verbosity=log.Level.DEBUG)
    log.info('Verbosity set to debug')
    
  log.log('View docs at:')
  for host in ('localhost', '127.0.0.1', '0.0.0.0'):
    log.log(f'  http://{host}:{NGINX_PORT}')
    
  command = [
    'docker', 'run', '--rm', '-it',
    '--name', 'ticterm_docs_serve',
    '-p', '8080:8080',
    '-v', './serve-docs.nginx.conf.template:/etc/nginx/templates/default.conf.template',
    '-v', './build/docs/html:/usr/share/nginx/html:ro',
  ]
  
  environment = {
    'URL_PATH_ROOT': URL_PATH_ROOT,
    'NGINX_PORT':    NGINX_PORT,
  }
  
  for var, value in environment.items():
    command += ['-e', f'{var}={shlex.quote(value)}']
    
  command += [
    'nginx'
  ]
  
  log.log('running command:', command)
  os.system(shlex.join(command))

if __name__ == '__main__':
  main()