mirror of
https://github.com/golang/go.git
synced 2025-05-22 16:09:37 +00:00
These were built inside Google but have been in production for years. Move them into the public tools repository so that they can be more easily maintained. This is step one to moving the entire golang.org deployment process out of Google's internal source repository. Change-Id: I72f875c5020b3f58f1c0cea1d19268e0f991833f Reviewed-on: https://go-review.googlesource.com/14842 Reviewed-by: Chris Broadfoot <cbro@golang.org>
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
// Copyright 2012 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build !appengine
|
|
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"go/format"
|
|
"net/http"
|
|
|
|
// This package registers "/compile" and "/share" handlers
|
|
// that redirect to the golang.org playground.
|
|
_ "golang.org/x/tools/playground"
|
|
)
|
|
|
|
func init() {
|
|
http.HandleFunc("/fmt", fmtHandler)
|
|
}
|
|
|
|
type fmtResponse struct {
|
|
Body string
|
|
Error string
|
|
}
|
|
|
|
// fmtHandler takes a Go program in its "body" form value, formats it with
|
|
// standard gofmt formatting, and writes a fmtResponse as a JSON object.
|
|
func fmtHandler(w http.ResponseWriter, r *http.Request) {
|
|
resp := new(fmtResponse)
|
|
body, err := format.Source([]byte(r.FormValue("body")))
|
|
if err != nil {
|
|
resp.Error = err.Error()
|
|
} else {
|
|
resp.Body = string(body)
|
|
}
|
|
json.NewEncoder(w).Encode(resp)
|
|
}
|
|
|
|
// disabledHandler serves a 501 "Not Implemented" response.
|
|
func disabledHandler(w http.ResponseWriter, r *http.Request) {
|
|
w.WriteHeader(http.StatusNotImplemented)
|
|
fmt.Fprint(w, "This functionality is not available via local godoc.")
|
|
}
|