diff --git a/.github/workflows/auto_lang.yml b/.github/workflows/auto_lang.yml index 439ebb77..868a40be 100644 --- a/.github/workflows/auto_lang.yml +++ b/.github/workflows/auto_lang.yml @@ -8,6 +8,7 @@ on: - 'drivers/**' - 'internal/bootstrap/data/setting.go' - 'internal/conf/const.go' + - 'cmd/lang.go' workflow_dispatch: jobs: @@ -43,14 +44,7 @@ jobs: cd alist go run ./main.go lang cd .. - - name: Format lang file - run: | - for file in ./alist/lang/*.json - do - cp -f "$file" "$file.old" || : - jq --sort-keys . "$file.old" > "$file" || : - done - rm ./alist/lang/*.json.old + - name: Copy lang file run: | cp -f ./alist/lang/*.json ./alist-web/src/lang/en/ 2>/dev/null || : diff --git a/cmd/lang.go b/cmd/lang.go index ace45cd8..dbe8509d 100644 --- a/cmd/lang.go +++ b/cmd/lang.go @@ -71,7 +71,7 @@ func writeFile(name string, data interface{}) { } else { log.Infof("%s.json changed, update file", name) //log.Infof("old: %+v\nnew:%+v", oldData, data) - utils.WriteJsonToFile(fmt.Sprintf("lang/%s.json", name), data) + utils.WriteJsonToFile(fmt.Sprintf("lang/%s.json", name), newData, true) } } diff --git a/pkg/utils/json.go b/pkg/utils/json.go index 5489775e..769d9818 100644 --- a/pkg/utils/json.go +++ b/pkg/utils/json.go @@ -1,6 +1,7 @@ package utils import ( + stdjson "encoding/json" "os" json "github.com/json-iterator/go" @@ -10,8 +11,11 @@ import ( var Json = json.ConfigCompatibleWithStandardLibrary // WriteJsonToFile write struct to json file -func WriteJsonToFile(dst string, data interface{}) bool { +func WriteJsonToFile(dst string, data interface{}, std ...bool) bool { str, err := json.MarshalIndent(data, "", " ") + if len(std) > 0 && std[0] { + str, err = stdjson.MarshalIndent(data, "", " ") + } if err != nil { log.Errorf("failed convert Conf to []byte:%s", err.Error()) return false