github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/tools/dashboard/app/build/init.go (about) 1 // Copyright 2012 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // +build appengine 6 7 package build 8 9 import ( 10 "fmt" 11 "net/http" 12 13 "appengine" 14 "appengine/datastore" 15 16 "cache" 17 "key" 18 ) 19 20 func initHandler(w http.ResponseWriter, r *http.Request) { 21 d := dashboardForRequest(r) 22 c := d.Context(appengine.NewContext(r)) 23 defer cache.Tick(c) 24 for _, p := range d.Packages { 25 err := datastore.Get(c, p.Key(c), new(Package)) 26 if _, ok := err.(*datastore.ErrFieldMismatch); ok { 27 // Some fields have been removed, so it's okay to ignore this error. 28 err = nil 29 } 30 if err == nil { 31 continue 32 } else if err != datastore.ErrNoSuchEntity { 33 logErr(w, r, err) 34 return 35 } 36 p.NextNum = 1 // So we can add the first commit. 37 if _, err := datastore.Put(c, p.Key(c), p); err != nil { 38 logErr(w, r, err) 39 return 40 } 41 } 42 43 // Create secret key. 44 key.Secret(c) 45 46 fmt.Fprint(w, "OK") 47 }