Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Unified Diff: tools/md_browser/md_browser.py

Issue 1952533002: Generalize md_browser to work on other repos (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update toplevel doc Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « docs/README.md ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/md_browser/md_browser.py
diff --git a/tools/md_browser/md_browser.py b/tools/md_browser/md_browser.py
old mode 100644
new mode 100755
index 2b968525320c8477f944307f599cc5178d69da94..f2e05f9308db049ac46cf2e7f823cd912f85cf8d
--- a/tools/md_browser/md_browser.py
+++ b/tools/md_browser/md_browser.py
@@ -1,3 +1,4 @@
+#!/usr/bin/env python
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -25,12 +26,16 @@ def main(argv):
parser = argparse.ArgumentParser(prog='md_browser')
parser.add_argument('-p', '--port', type=int, default=8080,
help='port to run on (default = %(default)s)')
+ parser.add_argument('-d', '--directory', type=str, default=SRC_DIR)
args = parser.parse_args(argv)
try:
- s = Server(args.port, SRC_DIR)
+ s = Server(args.port, args.directory)
print("Listening on http://localhost:%s/" % args.port)
- print(" Try loading http://localhost:%s/docs/README.md" % args.port)
+ if os.path.isfile(os.path.join(args.directory, 'docs', 'README.md')):
+ print(" Try loading http://localhost:%s/docs/README.md" % args.port)
+ elif os.path.isfile(os.path.join(args.directory, 'README.md')):
+ print(" Try loading http://localhost:%s/README.md" % args.port)
s.serve_forever()
s.shutdown()
return 0
@@ -71,7 +76,7 @@ class Server(SocketServer.TCPServer):
def __init__(self, port, top_level):
SocketServer.TCPServer.__init__(self, ('0.0.0.0', port), Handler)
self.port = port
- self.top_level = top_level
+ self.top_level = os.path.abspath(top_level)
def server_bind(self):
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
@@ -89,7 +94,7 @@ class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
full_path = os.path.abspath(os.path.join(self.server.top_level, path[1:]))
- if not full_path.startswith(SRC_DIR):
+ if not full_path.startswith(self.server.top_level):
self._DoUnknown()
elif path == '/doc.css':
self._DoCSS('doc.css')
@@ -142,9 +147,11 @@ class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
self.wfile.write('<html><body>I do not know how to serve %s.</body>'
'</html>' % self.path)
- def _Read(self, relpath):
+ def _Read(self, relpath, relative_to=None):
+ if relative_to is None:
+ relative_to = self.server.top_level
Dirk Pranke 2016/05/10 20:35:35 nit: it'd be a bit more idiomatic (and one less li
agable 2016/05/11 00:26:25 That disallows passing "relative_to=''", which wou
Dirk Pranke 2016/05/11 00:32:55 Hm. That seems like something I wouldn't want to s
assert not relpath.startswith(os.sep)
- path = os.path.join(self.server.top_level, relpath)
+ path = os.path.join(relative_to, relpath)
with codecs.open(path, encoding='utf-8') as fp:
return fp.read()
@@ -154,7 +161,8 @@ class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
self.end_headers()
def _WriteTemplate(self, template):
- contents = self._Read(os.path.join('tools', 'md_browser', template))
+ contents = self._Read(os.path.join('tools', 'md_browser', template),
+ relative_to=SRC_DIR)
self.wfile.write(contents.encode('utf-8'))
« no previous file with comments | « docs/README.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698