diff options
Diffstat (limited to 'styleguide/c++/chromium-cpp')
-rw-r--r-- | styleguide/c++/chromium-cpp/app.yaml | 17 | ||||
-rw-r--r-- | styleguide/c++/chromium-cpp/favicon.ico | bin | 0 -> 8348 bytes | |||
-rw-r--r-- | styleguide/c++/chromium-cpp/index.yaml | 12 | ||||
-rwxr-xr-x | styleguide/c++/chromium-cpp/main.py | 49 |
4 files changed, 78 insertions, 0 deletions
diff --git a/styleguide/c++/chromium-cpp/app.yaml b/styleguide/c++/chromium-cpp/app.yaml new file mode 100644 index 0000000..669b1a0 --- /dev/null +++ b/styleguide/c++/chromium-cpp/app.yaml @@ -0,0 +1,17 @@ +application: chromium-cpp +version: 1 +runtime: python27 +api_version: 1 +threadsafe: yes + +handlers: +- url: /favicon\.ico + static_files: favicon.ico + upload: favicon\.ico + +- url: .* + script: main.app + +libraries: +- name: webapp2 + version: "2.5.2" diff --git a/styleguide/c++/chromium-cpp/favicon.ico b/styleguide/c++/chromium-cpp/favicon.ico Binary files differnew file mode 100644 index 0000000..23c553a2 --- /dev/null +++ b/styleguide/c++/chromium-cpp/favicon.ico diff --git a/styleguide/c++/chromium-cpp/index.yaml b/styleguide/c++/chromium-cpp/index.yaml new file mode 100644 index 0000000..8e6046d --- /dev/null +++ b/styleguide/c++/chromium-cpp/index.yaml @@ -0,0 +1,12 @@ +indexes: + +# AUTOGENERATED + +# This index.yaml is automatically updated whenever the dev_appserver +# detects that a new type of query is run. If you want to manage the +# index.yaml file manually, remove the above marker line (the line +# saying "# AUTOGENERATED"). If you want to manage some indexes +# manually, move them above the marker line. The index.yaml file is +# automatically uploaded to the admin console when you next deploy +# your application using appcfg.py. + diff --git a/styleguide/c++/chromium-cpp/main.py b/styleguide/c++/chromium-cpp/main.py new file mode 100755 index 0000000..9017296 --- /dev/null +++ b/styleguide/c++/chromium-cpp/main.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python +# +# Copyright 2014 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. +from google.appengine.api import memcache +from google.appengine.api import urlfetch +import webapp2 + +import base64 + +"""A simple appengine app that hosts .html files in src/styleguide/c++ from +chromium's git repo.""" + + +class MainHandler(webapp2.RequestHandler): + def get(self): + handler = GitilesMirrorHandler() + handler.initialize(self.request, self.response) + return handler.get("c++11.html") + + +BASE = 'https://chromium.googlesource.com/chromium/src.git/' \ + '+/master/styleguide/c++/%s?format=TEXT' +class GitilesMirrorHandler(webapp2.RequestHandler): + def get(self, resource): + if '..' in resource: # No path traversal. + self.response.write(':-(') + return + + url = BASE % resource + contents = memcache.get(url) + if not contents or self.request.get('bust'): + result = urlfetch.fetch(url) + if result.status_code != 200: + self.response.write('http error %d' % result.status_code) + return + contents = base64.b64decode(result.content) + memcache.set(url, contents, time=5*60) # seconds + + if resource.endswith('.css'): + self.response.headers['Content-Type'] = 'text/css' + self.response.write(contents) + + +app = webapp2.WSGIApplication([ + ('/', MainHandler), + ('/(\S+\.(?:css|html))', GitilesMirrorHandler), +], debug=True) |