Files
gitea-docs/main.go
2024-06-06 20:44:06 +08:00

63 lines
1.3 KiB
Go

package main
import (
"fmt"
"io/fs"
"os"
"path/filepath"
"strings"
)
func main() {
args := os.Args
if len(args) != 4 {
fmt.Println("Please provide the path to the directory")
return
}
srcDir := os.Args[1]
if _, err := os.Stat(srcDir); os.IsNotExist(err) {
fmt.Println("Src directory does not exist")
return
}
dstDir := os.Args[2]
err := os.MkdirAll(dstDir, os.ModePerm)
if err != nil {
fmt.Println("Dst directory does not exist")
return
}
lang := os.Args[3]
if lang == "" || (lang != "en-us" && lang != "zh-cn" && lang != "zh-tw" && lang != "de-de" && lang != "fr-fr") {
fmt.Println("Please provide the language")
return
}
err = filepath.Walk(srcDir, func(path string, info fs.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
fmt.Println("Directory: ", path)
} else {
if strings.HasSuffix(path, "."+lang+".md") {
p := strings.Replace(path, "."+lang, "", 1)
rPath, err := filepath.Rel(srcDir, p)
if err != nil {
return err
}
p = filepath.Join(dstDir, rPath)
if err := os.MkdirAll(filepath.Dir(p), os.ModePerm); err != nil {
return err
}
if err := os.Rename(path, p); err != nil {
return err
}
}
}
return nil
})
if err != nil {
fmt.Println(err)
}
}