github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/acceptancetests/repository/charms/simple-resource-http/scripts/simple-server.py (about) 1 #!/usr/bin/env python 2 import argparse 3 import BaseHTTPServer 4 import SimpleHTTPServer 5 import os 6 7 SERVE_FILE_PATH = 'SIMPLE_HTTP_SERVER_INDEX_FILE' 8 9 10 class SimpleRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 11 """Simple request handler that always returns file supplied by env var.""" 12 def translate_path(self, path): 13 return os.environ[SERVE_FILE_PATH] 14 15 16 def parse_args(argv): 17 parser = argparse.ArgumentParser(description="Simple http server.") 18 parser.add_argument('--file-path', help='Path to file to serve.') 19 parser.add_argument( 20 '--port', default=8000, type=int, help='Port to serve on.') 21 22 return parser.parse_args() 23 24 25 def main(argv=None): 26 args = parse_args(argv) 27 28 server_details = ("", args.port) 29 os.environ[SERVE_FILE_PATH] = args.file_path 30 httpd = BaseHTTPServer.HTTPServer(server_details, SimpleRequestHandler) 31 try: 32 httpd.serve_forever() 33 except KeyboardInterrupt: 34 print('Caught keyboard interrupt. Exiting.') 35 36 37 if __name__ == '__main__': 38 main()