1package assets
2
3import (
4 "os"
5 "path/filepath"
6
7 "github.com/kujtimiihoxha/termai/internal/config"
8)
9
10func WriteAssets() error {
11 appCfg := config.Get()
12 appWd := config.WorkingDirectory()
13 scriptDir := filepath.Join(
14 appWd,
15 appCfg.Data.Directory,
16 "diff",
17 )
18 scriptPath := filepath.Join(scriptDir, "index.mjs")
19 // Before, run the script in cmd/diff/main.go to build this file
20 if _, err := os.Stat(scriptPath); err != nil {
21 scriptData, err := FS.ReadFile("diff/index.mjs")
22 if err != nil {
23 return err
24 }
25
26 err = os.MkdirAll(scriptDir, 0o755)
27 if err != nil {
28 return err
29 }
30 err = os.WriteFile(scriptPath, scriptData, 0o755)
31 if err != nil {
32 return err
33 }
34 }
35
36 themeDir := filepath.Join(
37 appWd,
38 appCfg.Data.Directory,
39 "themes",
40 )
41
42 themePath := filepath.Join(themeDir, "dark.json")
43
44 if _, err := os.Stat(themePath); err != nil {
45 themeData, err := FS.ReadFile("diff/themes/dark.json")
46 if err != nil {
47 return err
48 }
49
50 err = os.MkdirAll(themeDir, 0o755)
51 if err != nil {
52 return err
53 }
54 err = os.WriteFile(themePath, themeData, 0o755)
55 if err != nil {
56 return err
57 }
58 }
59 return nil
60}