Compare commits

...

4 Commits

Author SHA1 Message Date
2f915cb6c1 v0.0.346
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 1m56s
2023-12-13 16:22:15 +01:00
b2b93f570a v0.0.345
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 2m48s
2023-12-07 19:39:31 +01:00
8247fc4524 v0.0.344
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 1m11s
2023-12-07 19:36:21 +01:00
5dad44ad09 v0.0.343
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 1m2s
2023-12-07 18:29:17 +01:00
7 changed files with 37 additions and 18 deletions

View File

@@ -70,9 +70,9 @@ func GenerateCharsetIDSpecs(sourceDir string, destFile string) error {
newChecksum := cryptext.BytesSha256([]byte(newChecksumStr))
if newChecksum != oldChecksum {
fmt.Printf("[IDGenerate] Checksum has changed ( %s -> %s ), will generate new file\n\n", oldChecksum, newChecksum)
fmt.Printf("[CSIDGenerate] Checksum has changed ( %s -> %s ), will generate new file\n\n", oldChecksum, newChecksum)
} else {
fmt.Printf("[IDGenerate] Checksum unchanged ( %s ), nothing to do\n", oldChecksum)
fmt.Printf("[CSIDGenerate] Checksum unchanged ( %s ), nothing to do\n", oldChecksum)
return nil
}

View File

@@ -61,11 +61,15 @@ func GenerateEnumSpecs(sourceDir string, destFile string) error {
}
}
gocode, _, err := _generateEnumSpecs(sourceDir, oldChecksum, destFile, true)
gocode, _, changed, err := _generateEnumSpecs(sourceDir, destFile, oldChecksum, true)
if err != nil {
return err
}
if !changed {
return nil
}
err = os.WriteFile(destFile, []byte(gocode), 0o755)
if err != nil {
return err
@@ -74,11 +78,11 @@ func GenerateEnumSpecs(sourceDir string, destFile string) error {
return nil
}
func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, gofmt bool) (string, string, error) {
func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, gofmt bool) (string, string, bool, error) {
files, err := os.ReadDir(sourceDir)
if err != nil {
return "", "", err
return "", "", false, err
}
files = langext.ArrFilter(files, func(v os.DirEntry) bool { return v.Name() != path.Base(destFile) })
@@ -90,7 +94,7 @@ func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, g
for _, f := range files {
content, err := os.ReadFile(path.Join(sourceDir, f.Name()))
if err != nil {
return "", "", err
return "", "", false, err
}
newChecksumStr += "\n" + f.Name() + "\t" + cryptext.BytesSha256(content)
}
@@ -101,7 +105,7 @@ func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, g
fmt.Printf("[EnumGenerate] Checksum has changed ( %s -> %s ), will generate new file\n\n", oldChecksum, newChecksum)
} else {
fmt.Printf("[EnumGenerate] Checksum unchanged ( %s ), nothing to do\n", oldChecksum)
return "", oldChecksum, nil
return "", oldChecksum, false, nil
}
allEnums := make([]EnumDef, 0)
@@ -112,7 +116,7 @@ func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, g
fmt.Printf("========= %s =========\n\n", f.Name())
fileEnums, pn, err := processEnumFile(sourceDir, path.Join(sourceDir, f.Name()))
if err != nil {
return "", "", err
return "", "", false, err
}
fmt.Printf("\n")
@@ -125,21 +129,21 @@ func _generateEnumSpecs(sourceDir string, destFile string, oldChecksum string, g
}
if pkgname == "" {
return "", "", errors.New("no package name found in any file")
return "", "", false, errors.New("no package name found in any file")
}
rdata := fmtEnumOutput(newChecksum, allEnums, pkgname)
if !gofmt {
return rdata, newChecksum, nil
return rdata, newChecksum, true, nil
}
fdata, err := format.Source([]byte(rdata))
if err != nil {
return "", "", err
return "", "", false, err
}
return string(fdata), newChecksum, nil
return string(fdata), newChecksum, true, nil
}
func processEnumFile(basedir string, fn string) ([]EnumDef, string, error) {

View File

@@ -37,10 +37,10 @@ func TestGenerateEnumSpecs(t *testing.T) {
_, err = cmdext.Runner("tar").Arg("-xvzf").Arg(tmpFile).Arg("-C").Arg(tmpDir).FailOnExitCode().FailOnTimeout().Timeout(time.Minute).Run()
tst.AssertNoErr(t, err)
s1, cs1, err := _generateEnumSpecs(tmpDir, "", "N/A", true)
s1, cs1, _, err := _generateEnumSpecs(tmpDir, "", "N/A", true)
tst.AssertNoErr(t, err)
s2, cs2, err := _generateEnumSpecs(tmpDir, "", "N/A", true)
s2, cs2, _, err := _generateEnumSpecs(tmpDir, "", "N/A", true)
tst.AssertNoErr(t, err)
tst.AssertEqual(t, cs1, cs2)
@@ -76,7 +76,7 @@ func TestGenerateEnumSpecsData(t *testing.T) {
_, err = cmdext.Runner("tar").Arg("-xvzf").Arg(tmpFile).Arg("-C").Arg(tmpDir).FailOnExitCode().FailOnTimeout().Timeout(time.Minute).Run()
tst.AssertNoErr(t, err)
s1, _, err := _generateEnumSpecs(tmpDir, "", "", true)
s1, _, _, err := _generateEnumSpecs(tmpDir, "", "", true)
tst.AssertNoErr(t, err)
fmt.Println()

2
go.mod
View File

@@ -33,7 +33,7 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/montanaflynn/stats v0.7.1 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/pelletier/go-toml/v2 v2.1.1 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.12 // indirect
github.com/xdg-go/pbkdf2 v1.0.0 // indirect

2
go.sum
View File

@@ -88,6 +88,8 @@ github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8
github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow=
github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4=
github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI=
github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=

View File

@@ -1,5 +1,5 @@
package goext
const GoextVersion = "0.0.342"
const GoextVersion = "0.0.346"
const GoextVersionTimestamp = "2023-12-07T17:57:06+0100"
const GoextVersionTimestamp = "2023-12-13T16:22:15+0100"

View File

@@ -10,10 +10,23 @@ var PTrue = Ptr(true)
// PFalse := &false
var PFalse = Ptr(false)
// PNil := &nil
var PNil = Ptr[any](nil)
func Ptr[T any](v T) *T {
return &v
}
func DblPtr[T any](v T) **T {
v_ := &v
return &v_
}
func DblPtrNil[T any]() **T {
var v *T = nil
return &v
}
func PtrInt32(v int32) *int32 {
return &v
}