init
commit
e1d4217ac9
|
@ -0,0 +1,72 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
func fileNameWithoutExtension(fileName string) string {
|
||||||
|
if pos := strings.LastIndexByte(fileName, '.'); pos != -1 {
|
||||||
|
return fileName[:pos]
|
||||||
|
}
|
||||||
|
return fileName
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
CategoryFlag := flag.String("c", "", "Name of the emoji category")
|
||||||
|
flag.Parse()
|
||||||
|
// Remove old meta.json
|
||||||
|
_, err := os.Stat("meta.json")
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
err = os.Remove("meta.json")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Get files list
|
||||||
|
f, err := os.Open("./")
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
files, err := f.Readdir(0)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Init metadata
|
||||||
|
meta := &MetaPackage{}
|
||||||
|
// Loop through files
|
||||||
|
for _, file := range files {
|
||||||
|
emoji := Emoji{
|
||||||
|
Downloaded: true,
|
||||||
|
FileName: file.Name(),
|
||||||
|
Emoji: EmojiInfo{
|
||||||
|
Name: fileNameWithoutExtension(file.Name()),
|
||||||
|
Category: *CategoryFlag,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
meta.Emojis = append(meta.Emojis, emoji)
|
||||||
|
}
|
||||||
|
// Write JSON file
|
||||||
|
metaData, _ := json.MarshalIndent(meta, "", " ")
|
||||||
|
_ = os.WriteFile("meta.json", metaData, 0644)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MetaPackage struct {
|
||||||
|
Emojis []Emoji `json:"emojis"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Emoji struct {
|
||||||
|
Downloaded bool `json:"downloaded"`
|
||||||
|
FileName string `json:"fileName"`
|
||||||
|
Emoji EmojiInfo `json:"emoji"`
|
||||||
|
}
|
||||||
|
type EmojiInfo struct {
|
||||||
|
Name string `json:"name"`
|
||||||
|
Category string `json:"category"`
|
||||||
|
// Aliases []string `json:"aliases"`
|
||||||
|
}
|
Loading…
Reference in New Issue