reprogl

Форк
0
/
app_data.go 
66 строк · 1.1 Кб
1
package container
2

3
import (
4
	_ "embed"
5
	"strings"
6

7
	"github.com/BurntSushi/toml"
8
)
9

10
type AppData struct {
11
	HeaderText string `toml:"header_text"`
12
	Author     Author `toml:"author"`
13

14
	AuthorLocationRu Location `toml:"author_location"`
15
	AuthorLocationEn Location `toml:"author_location_en"`
16

17
	Jobs JobHistory `toml:"jobs"`
18
}
19

20
type Author struct {
21
	FullName string `toml:"fn"`
22
	Bio      string `toml:"bio"`
23
	Email    string `toml:"email"`
24

25
	GithubUser      string `toml:"github"`
26
	TelegramChannel string `toml:"telegram"`
27
	MastodonLink    string `toml:"mastodon"`
28
	GitVerseUser    string `toml:"gitverse"`
29
}
30

31
type Location struct {
32
	City    string `toml:"city"`
33
	Region  string `toml:"region"`
34
	Country string `toml:"country"`
35
}
36

37
var (
38
	//go:embed app_data.toml
39
	dataSource string
40
)
41

42
func loadAppData() AppData {
43
	var data AppData
44
	_, err := toml.Decode(dataSource, &data)
45
	if err != nil {
46
		panic(err)
47
	}
48

49
	return data
50
}
51

52
func (l Location) String() string {
53
	s := make([]string, 0, 3)
54

55
	if l.City != "" {
56
		s = append(s, l.City)
57
	}
58
	if l.Region != "" {
59
		s = append(s, l.Region)
60
	}
61
	if l.Country != "" {
62
		s = append(s, l.Country)
63
	}
64

65
	return strings.Join(s, ", ")
66
}
67

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.