Skip to content

Commit 2442e30

Browse files
authored
ci(lang): sync only new fields (OpenListTeam#1881)
1 parent 0612271 commit 2442e30

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

cmd/lang.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"fmt"
99
"io"
1010
"os"
11-
"reflect"
1211
"strings"
1312

1413
_ "github.com/OpenListTeam/OpenList/v4/drivers"
@@ -69,15 +68,33 @@ func writeFile(name string, data interface{}) {
6968
log.Errorf("failed to unmarshal json: %+v", err)
7069
return
7170
}
72-
if reflect.DeepEqual(oldData, newData) {
71+
if mergeJson(newData, oldData) {
7372
log.Infof("%s.json no changed, skip", name)
7473
} else {
7574
log.Infof("%s.json changed, update file", name)
7675
//log.Infof("old: %+v\nnew:%+v", oldData, data)
77-
utils.WriteJsonToFile(fmt.Sprintf("lang/%s.json", name), newData, true)
76+
utils.WriteJsonToFile(fmt.Sprintf("lang/%s.json", name), oldData, true)
7877
}
7978
}
8079

80+
func mergeJson(source, target map[string]interface{}) bool {
81+
equal := true
82+
for k, v := range source {
83+
tgtV, tgtOk := target[k]
84+
if !tgtOk {
85+
equal = false
86+
target[k] = v
87+
} else {
88+
srcMap, srcIsMap := v.(map[string]interface{})
89+
tgtMap, tgtIsMap := tgtV.(map[string]interface{})
90+
if srcIsMap && tgtIsMap {
91+
equal = mergeJson(srcMap, tgtMap) && equal
92+
}
93+
}
94+
}
95+
return equal
96+
}
97+
8198
func generateDriversJson() {
8299
drivers := make(Drivers)
83100
drivers["drivers"] = make(KV[interface{}])

0 commit comments

Comments
 (0)