app: add support to download snippets

When a file is requested with the "?download=true" query string, the
Playground will now serve the file with the "Content-Disposition" header that
makes the browser download the snippet rather than display it.

Updates golang/go#15378.

Change-Id: Iba3e04418e92d3aed3d27e4d6903d6a4d2ce944f
Reviewed-on: https://go-review.googlesource.com/35950
Reviewed-by: Chris Broadfoot <cbro@golang.org>
Reviewed-by: Andrew Gerrand <adg@golang.org>
3 files changed
tree: 570a44cdaf42d8d63ab241660084430c31ef642b
  1. app/
  2. sandbox/
  3. AUTHORS
  4. codereview.cfg
  5. CONTRIBUTING.md
  6. CONTRIBUTORS
  7. LICENSE
  8. PATENTS
  9. README.md
README.md

playground

This subrepository holds the source for various packages and tools that support the Go playground: https://play.golang.org/

To submit changes to this repository, see http://golang.org/doc/contribute.html.

Building

# build the sandbox image
docker build -t sandbox sandbox/

Running

# run the sandbox
docker run -d -p 8080:8080 sandbox
# get docker host ip, try boot2docker fallback on localhost.
DOCKER_HOST_IP=$(boot2docker ip || echo localhost)
# run go some code
cat /path/to/code.go | go run ./sandbox/client.go | curl --data @- $DOCKER_HOST_IP:8080/compile

To submit changes to this repository, see http://golang.org/doc/contribute.html.

Deployment

(Googlers only) To deploy the front-end, use play/deploy.sh.

gcloud --project golang-org app deploy sandbox/app.yaml --no-promote --version=17rc6

Use the Cloud Console's to set the new version as the default: https://cloud.google.com/console/appengine/versions?project=golang-org&moduleId=sandbox Then test that play.golang.org and tour.golang.org are working before deleting the old version.