summaryrefslogtreecommitdiffstats
path: root/styleguide/c++/chromium-cpp
diff options
context:
space:
mode:
Diffstat (limited to 'styleguide/c++/chromium-cpp')
-rw-r--r--styleguide/c++/chromium-cpp/app.yaml17
-rw-r--r--styleguide/c++/chromium-cpp/favicon.icobin0 -> 8348 bytes
-rw-r--r--styleguide/c++/chromium-cpp/index.yaml12
-rwxr-xr-xstyleguide/c++/chromium-cpp/main.py49
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
new file mode 100644
index 0000000..23c553a2
--- /dev/null
+++ b/styleguide/c++/chromium-cpp/favicon.ico
Binary files differ
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)