Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
kardolus
GitHub Repository: kardolus/chatgpt-cli
Path: blob/main/internal/utils.go
2649 views
1
package internal
2
3
import (
4
"github.com/google/uuid"
5
"os"
6
"path/filepath"
7
)
8
9
const (
10
ConfigHomeEnv = "OPENAI_CONFIG_HOME"
11
DataHomeEnv = "OPENAI_DATA_HOME"
12
DefaultConfigDir = ".chatgpt-cli"
13
DefaultDataDir = "history"
14
SlugPostfixLength = 4
15
)
16
17
func GenerateUniqueSlug(prefix string) string {
18
guid := uuid.New()
19
return prefix + guid.String()[:SlugPostfixLength]
20
}
21
22
func GetConfigHome() (string, error) {
23
var result string
24
25
homeDir, err := os.UserHomeDir()
26
if err != nil {
27
return "", err
28
}
29
30
result = filepath.Join(homeDir, DefaultConfigDir)
31
32
if tmp := os.Getenv(ConfigHomeEnv); tmp != "" {
33
result = tmp
34
}
35
36
return result, nil
37
}
38
39
func GetDataHome() (string, error) {
40
var result string
41
42
configHome, err := GetConfigHome()
43
if err != nil {
44
return "", err
45
}
46
47
result = filepath.Join(configHome, DefaultDataDir)
48
49
if tmp := os.Getenv(DataHomeEnv); tmp != "" {
50
result = tmp
51
}
52
53
return result, nil
54
}
55
56