// +build ignore /* * Makefile alternative for Minio Cloud Storage, (C) 2015 Minio, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package main import ( "fmt" "os" "text/template" "time" ) type Version struct { Date string Tag string } func writeVersion(version Version) error { var versionTemplate = `// -------- DO NOT EDIT -------- // this is an autogenerated file package main import ( "net/http" "time" ) // Version autogenerated var Version = {{if .Date}}"{{.Date}}"{{else}}""{{end}} // Tag is of following format // // RELEASE.[WeekDay]-[Month]-[Day]-[Hour]-[Min]-[Sec]-GMT-[Year] // var Tag = {{if .Tag}}"{{.Tag}}"{{else}}""{{end}} // getVersion - func getVersion() string { t, _ := time.Parse(time.RFC3339Nano, Version) if t.IsZero() { return "" } return t.Format(http.TimeFormat) } ` t := template.Must(template.New("version").Parse(versionTemplate)) versionFile, err := os.OpenFile("version.go", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) if err != nil { return err } defer versionFile.Close() err = t.Execute(versionFile, version) if err != nil { return err } return nil } func main() { t := time.Now().UTC() date := t.Format(time.RFC3339Nano) tag := fmt.Sprintf( "RELEASE.%s-%s-%02d-%02d-%02d-%02d-GMT-%d", t.Weekday().String()[0:3], t.Month().String()[0:3], t.Day(), t.Hour(), t.Minute(), t.Second(), t.Year(), ) version := Version{Date: date, Tag: tag} err := writeVersion(version) if err != nil { fmt.Print(err) os.Exit(1) } }