mirror of https://github.com/Xhofe/alist
feat: skip generate lang if no changes
parent
868a4fd49e
commit
534d8d30fc
45
cmd/lang.go
45
cmd/lang.go
|
@ -6,7 +6,9 @@ package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
_ "github.com/alist-org/alist/v3/drivers"
|
_ "github.com/alist-org/alist/v3/drivers"
|
||||||
|
@ -14,6 +16,7 @@ import (
|
||||||
"github.com/alist-org/alist/v3/internal/conf"
|
"github.com/alist-org/alist/v3/internal/conf"
|
||||||
"github.com/alist-org/alist/v3/internal/op"
|
"github.com/alist-org/alist/v3/internal/op"
|
||||||
"github.com/alist-org/alist/v3/pkg/utils"
|
"github.com/alist-org/alist/v3/pkg/utils"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -34,6 +37,43 @@ func convert(s string) string {
|
||||||
return firstUpper(ans)
|
return firstUpper(ans)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func writeFile(name string, data interface{}) {
|
||||||
|
f, err := os.Open(fmt.Sprintf("../alist-web/src/lang/en/%s.json", name))
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to open %s.json: %+v", name, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
content, err := io.ReadAll(f)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to read %s.json: %+v", name, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
oldData := make(map[string]interface{})
|
||||||
|
newData := make(map[string]interface{})
|
||||||
|
err = utils.Json.Unmarshal(content, &oldData)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to unmarshal %s.json: %+v", name, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
content, err = utils.Json.Marshal(data)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to marshal json: %+v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = utils.Json.Unmarshal(content, &newData)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to unmarshal json: %+v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if reflect.DeepEqual(oldData, newData) {
|
||||||
|
log.Infof("%s.json no changed, skip", name)
|
||||||
|
} 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func generateDriversJson() {
|
func generateDriversJson() {
|
||||||
drivers := make(Drivers)
|
drivers := make(Drivers)
|
||||||
drivers["drivers"] = make(KV[interface{}])
|
drivers["drivers"] = make(KV[interface{}])
|
||||||
|
@ -58,7 +98,7 @@ func generateDriversJson() {
|
||||||
}
|
}
|
||||||
drivers[k] = items
|
drivers[k] = items
|
||||||
}
|
}
|
||||||
utils.WriteJsonToFile("lang/drivers.json", drivers)
|
writeFile("drivers", drivers)
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateSettingsJson() {
|
func generateSettingsJson() {
|
||||||
|
@ -78,7 +118,8 @@ func generateSettingsJson() {
|
||||||
settingsLang[fmt.Sprintf("%ss", setting.Key)] = options
|
settingsLang[fmt.Sprintf("%ss", setting.Key)] = options
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
utils.WriteJsonToFile("lang/settings.json", settingsLang)
|
writeFile("settings", settingsLang)
|
||||||
|
//utils.WriteJsonToFile("lang/settings.json", settingsLang)
|
||||||
}
|
}
|
||||||
|
|
||||||
// langCmd represents the lang command
|
// langCmd represents the lang command
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"os"
|
||||||
|
|
||||||
json "github.com/json-iterator/go"
|
json "github.com/json-iterator/go"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
|
@ -16,7 +16,7 @@ func WriteJsonToFile(dst string, data interface{}) bool {
|
||||||
log.Errorf("failed convert Conf to []byte:%s", err.Error())
|
log.Errorf("failed convert Conf to []byte:%s", err.Error())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
err = ioutil.WriteFile(dst, str, 0777)
|
err = os.WriteFile(dst, str, 0777)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("failed to write json file:%s", err.Error())
|
log.Errorf("failed to write json file:%s", err.Error())
|
||||||
return false
|
return false
|
||||||
|
|
Loading…
Reference in New Issue