Skip to content

Instantly share code, notes, and snippets.

@goddoe
Last active December 27, 2017 02:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goddoe/9862591730b9c24248b5c79eeb473275 to your computer and use it in GitHub Desktop.
Save goddoe/9862591730b9c24248b5c79eeb473275 to your computer and use it in GitHub Desktop.
Simple web server for R
#!/usr/bin/env python
import os
import argparse
from http.server import (HTTPServer,
SimpleHTTPRequestHandler)
LOCAL_CRAN_PATH = os.path.join(os.path.dirname(__file__), 'local_cran')
SERVER_ADDRESS = '0.0.0.0'
PORT = 7777
def print_example():
example_text = """install package example:
install.packages('package_name', repos="http://host_address:port", type='source')"""
print(example_text)
def run(local_cran_path, server_address, port):
os.chdir(local_cran_path)
server_address = (server_address, port)
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)
print("server start... {}:{}".format(SERVER_ADDRESS, port))
print("serving... {}".format(local_cran_path))
print_example()
httpd.serve_forever()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--local_cran_path', metavar='local_cran_path',
type=str, help='local_cran_path', default=LOCAL_CRAN_PATH)
parser.add_argument('--server_address', metavar='server_address',
type=str, help='server_address', default=SERVER_ADDRESS)
parser.add_argument('--port', metavar='port',
type=int, help='port', default=PORT)
p = parser.parse_args()
run(local_cran_path=p.local_cran_path,
server_address=p.server_address,
port=p.port)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment