github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/version/static-data/make_static_data.go (about) 1 // Copyright (c) 2015-2021, NVIDIA CORPORATION. 2 // SPDX-License-Identifier: Apache-2.0 3 4 package main 5 6 import ( 7 "fmt" 8 "os" 9 "os/exec" 10 ) 11 12 const bytesPerLine = 16 13 14 func usage() { 15 fmt.Println("go run make_static_data.go -?") 16 fmt.Println(" Prints this help text") 17 fmt.Println("go run make_static_data.go <packageName> <dstFile.go>") 18 fmt.Println(" <packageName> is the name of the ultimate package for <dstFile.go>") 19 fmt.Println(" <dstFile.go> is the name of the generated .go source file") 20 } 21 22 var bs = []byte{} 23 24 func main() { 25 var ( 26 gitDescribeCmd *exec.Cmd 27 gitDescribeOutput []byte 28 dstFile *os.File 29 dstFileName string 30 err error 31 packageName string 32 proxyfsVersionString string 33 ) 34 35 if (2 == len(os.Args)) && ("-?" == os.Args[1]) { 36 usage() 37 os.Exit(0) 38 } 39 40 if 3 != len(os.Args) { 41 usage() 42 os.Exit(1) 43 } 44 45 packageName = os.Args[1] 46 dstFileName = os.Args[2] 47 48 dstFile, err = os.Create(dstFileName) 49 if nil != err { 50 panic(err.Error()) 51 } 52 53 _, err = dstFile.Write([]byte(fmt.Sprintf("// Code generated by \"go run make_static_data.go %v %v\" - DO NOT EDIT\n\n", packageName, dstFileName))) 54 if nil != err { 55 panic(err.Error()) 56 } 57 _, err = dstFile.Write([]byte(fmt.Sprintf("package %v\n\n", packageName))) 58 if nil != err { 59 panic(err.Error()) 60 } 61 62 proxyfsVersionString = os.Getenv("PROXYFS_VERSION") 63 64 if "" == proxyfsVersionString { 65 gitDescribeCmd = exec.Command("git", "describe", "--tags") 66 67 gitDescribeOutput, err = gitDescribeCmd.Output() 68 if nil != err { 69 panic(err.Error()) 70 } 71 72 proxyfsVersionString = string(gitDescribeOutput[:len(gitDescribeOutput)-1]) 73 } 74 75 _, err = dstFile.Write([]byte(fmt.Sprintf("const ProxyFSVersion = `%v`\n", proxyfsVersionString))) 76 if nil != err { 77 panic(err.Error()) 78 } 79 80 err = dstFile.Close() 81 if nil != err { 82 panic(err.Error()) 83 } 84 85 os.Exit(0) 86 }