美文网首页
Go语言学习Tips(二)

Go语言学习Tips(二)

作者: 那个小码哥 | 来源:发表于2017-03-03 12:09 被阅读0次
    golang编译时设定版本号

    无论用什么语言写代码,版本是很重要的一个东西。一般来说,用-v或者--version参数来输出程序的版本是一个好办法。话不多说,上代码片段。

    package main
    
    import (
        "flag"
        "fmt"
        "os"
    )
    
    var VersionStr = "unknown"
    
    func main() {
        version := flag.Bool("v", false, "Show Version")
    
        flag.Parse()
        if *version {
            fmt.Println(VersionStr)
            os.Exit(0)
        }
    }
    

    编译脚本:

    #!/bin/bash -xe
    
    function getversion() {
        branch=`git rev-parse --abbrev-ref HEAD`
        commitid=`git rev-parse --short HEAD`
        builddate=`date +%Y%m%d-%H%M%S`
        echo $branch-$commitid-$builddate
    }
    
    cd `dirname $0`
    
    # use go vendor
    export GO15VENDOREXPERIMENT=1
    
    version=`getversion`
    pkgpath="github.com/auxten/logrus/examples/basic"
    
    echo "build log-linux"
    GOOS=linux GOARCH=amd64  go build -ldflags "-X main.VersionStr=${version}"  -o bin/log-linux ${pkgpath}
    
    #echo "build log-osx"
    #GOOS=darwin GOARCH=amd64 go build -ldflags "-X main.VersionStr=${version}"  -o bin/log-osx ${pkgpath}
    
    #echo "build log-win
    #GOOS=windows GOARCH=386  go build -ldflags "-X main.versionStr=${version}"  -o bin/log-win ${pkgpath}
    
    echo "done"
    

    这样,就可以把运行./bin/log-linux -v就可以把git分支-commitId-编译时间输出出来了。

    版权声明:转载请注明文章来源:Reboot-51

    • 如果文章对您有帮助,请关注一下,点个赞吧!

    相关文章

      网友评论

          本文标题:Go语言学习Tips(二)

          本文链接:https://www.haomeiwen.com/subject/zhglgttx.html