mirror of https://github.com/einverne/dotfiles.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
#!/usr/bin/env python |
|
import sys, os |
|
import SimpleHTTPServer |
|
args = sys.argv[1:] |
|
|
|
if len(args) and (args[0] == "-h" or args[0] == "--help"): |
|
print """ |
|
Serve a file (or the current directory) |
|
http://benalman.com/ |
|
|
|
Usage: %s [PORT] [FILE] |
|
|
|
If a port isn't specified, use 8080. If a file isn't specified, serve the |
|
current directory. Once started, open the specified file (or the current |
|
directory) with the default web browser. |
|
|
|
Copyright (c) 2012 "Cowboy" Ben Alman |
|
Licensed under the MIT license. |
|
http://benalman.com/about/license/""" % os.path.basename(sys.argv[0]) |
|
sys.exit() |
|
|
|
# Get port, if specified. |
|
port = 8080 |
|
if len(args) and args[0].isdigit(): |
|
port = int(args[0]) |
|
args = args[1:] # Shift args. |
|
|
|
# Get file, if specified. |
|
file = args[0] if len(args) else "" |
|
|
|
# If not in an SSH session, open the URL in the default handler. |
|
if not "SSH_TTY" in os.environ: |
|
os.system("open 'http://localhost:%d/%s'" % (port, file)) |
|
|
|
# Redefining the default content-type to text/plain instead of the default |
|
# application/octet-stream allows "unknown" files to be viewable in-browser |
|
# as text instead of being downloaded, which makes me happy. |
|
extensions_map = SimpleHTTPServer.SimpleHTTPRequestHandler.extensions_map |
|
# Set the default content type to text/plain. |
|
extensions_map[""] = "text/plain" |
|
# Serving everything as UTF-8 by default makes funky characters render |
|
# correctly and shouldn't break anything (per Mathias Bynens). |
|
for key, value in extensions_map.items(): |
|
extensions_map[key] = value + "; charset=UTF-8" |
|
|
|
# Start the server using the default .test method, because I'm lazy (the port |
|
# is still grabbed from sys.argv[1]). |
|
sys.argv = [sys.argv[0], port] |
|
SimpleHTTPServer.test()
|
|
|