aboutsummaryrefslogtreecommitdiff
path: root/go-src/folderPaths/folderPaths.go
blob: b39ce8708f8717f2305ba0829135c2a02a56b397 (plain) (blame)
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
61
62
63
64
65
66
67
68
69
70
package folderPaths

import (
	"os"
	"runtime"
)

func InitFoldersAndFiles() {
	dirs := []string{rootFolder(), FileAtChatsFolder(""), FileAtDirectMessagesFolder(""), FileAtUsersFolder("")}
	for _, v := range dirs {
		if _, err := os.Stat(v); os.IsNotExist(err) {
			os.Mkdir(v, 0775)
		}
	}

	files := []string{AllChatsFilePath()}
	for _, v := range files {
		if _, err := os.Stat(v); os.IsNotExist(err) {
			f, _ := os.Create(v)
			f.Close()
		}
	}
}

func AllChatsFilePath() string {
	return buildPath(rootFolder(), "AllChats.txt")
}

func FileAtChatsFolder(fileName string) string {
	if fileName != "" {
		fileName += ".txt"
	}
	return buildPath(rootFolder(), "Chats", fileName)
}

func FileAtDirectMessagesFolder(fileName string) string {
	if fileName != "" {
		fileName += ".txt"
	}
	return buildPath(rootFolder(), "DirectMessages", fileName)
}

func FileAtUsersFolder(fileName string) string {
	if fileName != "" {
		fileName += ".txt"
	}
	return buildPath(rootFolder(), "Users", fileName)
}

func rootFolder() string {
	if runtime.GOOS == "windows" {
		return "C:\\Users\\username\\AppData\\Roaming\\ctfc"
	}
	home, _ := os.UserHomeDir()
	return home + "/Desktop/ctfc"
}

func buildPath(folders ...string) (path string) {
	sep := "/"
	if runtime.GOOS == "windows" {
		sep = "\\"
	}
	for i, v := range folders {
		path += v
		if i < len(folders)-1 {
			path += sep
		}
	}
	return
}