diff --git a/v2/printer/binary.go b/v2/printer/binary.go index 16c29247..824b273b 100644 --- a/v2/printer/binary.go +++ b/v2/printer/binary.go @@ -15,7 +15,7 @@ func (self *binaryPrinter) Run(g *Globals) *Stream { fileStresam := NewStream() fileStresam.WriteString("TABTOY") fileStresam.WriteInt32(combineFileVersion) - fileStresam.WriteString(BinaryBuildID()) + fileStresam.WriteString(g.BuildID) for index, tab := range g.Tables { diff --git a/v2/printer/csharp.go b/v2/printer/csharp.go index 2fd148de..0b542483 100644 --- a/v2/printer/csharp.go +++ b/v2/printer/csharp.go @@ -4,10 +4,11 @@ import ( "fmt" "text/template" + "bytes" + "crypto/md5" "github.com/davyxu/tabtoy/v2/i18n" "github.com/davyxu/tabtoy/v2/model" "strings" - "time" ) const csharpTemplate = `// Generated by github.com/davyxu/tabtoy @@ -364,14 +365,8 @@ type csharpFileModel struct { VerticalFields []csharpField GenSerializeCode bool -} - -func (self *csharpFileModel) BuildID() string { - return BinaryBuildID() -} -func BinaryBuildID() string { - return time.Now().Format("2006-01-02 15:04:05") + BuildID string } type csharpPrinter struct { @@ -467,6 +462,16 @@ func (self *csharpPrinter) Run(g *Globals) *Stream { bf := NewStream() + var md5Buffer bytes.Buffer + err = tpl.Execute(&md5Buffer, &m) + if err != nil { + log.Errorln(err) + return nil + } + + m.BuildID = fmt.Sprintf("%x", md5.Sum(bf.Buffer().Bytes())) + g.BuildID = m.BuildID + err = tpl.Execute(bf.Buffer(), &m) if err != nil { log.Errorln(err) diff --git a/v2/printer/globals.go b/v2/printer/globals.go index f9d3b302..518f42f8 100644 --- a/v2/printer/globals.go +++ b/v2/printer/globals.go @@ -33,6 +33,7 @@ type Globals struct { GlobalIndexes []TableIndex // 类型信息.全局索引 CombineStruct *model.Descriptor // 类型信息.Combine结构体 + BuildID string } func (self *Globals) PreExport() bool {