mirror of https://github.com/coder/coder.git
61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
func generateIconList(path string) int {
|
|
if path == "" {
|
|
return 0 // skip
|
|
}
|
|
|
|
files, err := os.ReadDir("site/static/icon/")
|
|
if err != nil {
|
|
_, _ = fmt.Println("failed to read site/static/icon/ directory")
|
|
_, _ = fmt.Println("err:", err.Error())
|
|
return 71 // OSERR
|
|
}
|
|
|
|
icons := make([]string, len(files))
|
|
i := 0
|
|
for _, file := range files {
|
|
if !file.Type().IsRegular() {
|
|
continue
|
|
}
|
|
|
|
icons[i] = file.Name()
|
|
i++
|
|
}
|
|
icons = icons[:i]
|
|
|
|
outputFile, err := os.Create(path)
|
|
if err != nil {
|
|
_, _ = fmt.Println("failed to create file")
|
|
_, _ = fmt.Println("err:", err.Error())
|
|
return 73 // CANTCREAT
|
|
}
|
|
defer outputFile.Close()
|
|
|
|
iconsJSON, err := json.Marshal(icons)
|
|
if err != nil {
|
|
_, _ = fmt.Println("failed to serialize JSON")
|
|
_, _ = fmt.Println("err:", err.Error())
|
|
return 70 // SOFTWARE
|
|
}
|
|
|
|
written, err := outputFile.Write(iconsJSON)
|
|
if err != nil || written != len(iconsJSON) {
|
|
_, _ = fmt.Println("failed to write JSON")
|
|
if err != nil {
|
|
_, _ = fmt.Println("err:", err.Error())
|
|
}
|
|
return 74 // IOERR
|
|
}
|
|
|
|
_, _ = fmt.Println(green.Sprintf("==>"), path)
|
|
|
|
return 0
|
|
}
|