summaryrefslogtreecommitdiffhomepage
path: root/internal/assets/write.go
blob: 602b589ce353a994f4ea063f007639dc21b86fe5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package assets

import (
	"os"
	"path/filepath"

	"github.com/kujtimiihoxha/termai/internal/config"
)

func WriteAssets() error {
	appCfg := config.Get()
	appWd := config.WorkingDirectory()
	scriptDir := filepath.Join(
		appWd,
		appCfg.Data.Directory,
		"diff",
	)
	scriptPath := filepath.Join(scriptDir, "index.mjs")
	// Before, run the script in cmd/diff/main.go to build this file
	if _, err := os.Stat(scriptPath); err != nil {
		scriptData, err := FS.ReadFile("diff/index.mjs")
		if err != nil {
			return err
		}

		err = os.MkdirAll(scriptDir, 0o755)
		if err != nil {
			return err
		}
		err = os.WriteFile(scriptPath, scriptData, 0o755)
		if err != nil {
			return err
		}
	}

	themeDir := filepath.Join(
		appWd,
		appCfg.Data.Directory,
		"themes",
	)

	themePath := filepath.Join(themeDir, "dark.json")

	if _, err := os.Stat(themePath); err != nil {
		themeData, err := FS.ReadFile("diff/themes/dark.json")
		if err != nil {
			return err
		}

		err = os.MkdirAll(themeDir, 0o755)
		if err != nil {
			return err
		}
		err = os.WriteFile(themePath, themeData, 0o755)
		if err != nil {
			return err
		}
	}
	return nil
}