-
Notifications
You must be signed in to change notification settings - Fork 0
/
func.go
132 lines (124 loc) · 2.81 KB
/
func.go
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package main
import (
"github.com/gek64/gek/gApp"
"github.com/gek64/gek/gDownloader"
"os"
)
func installBinaryFile() (err error) {
downloadURL, err := GetDownloadURL()
if err != nil {
return err
}
err = gDownloader.Download(downloadURL, "/usr/local/bin/qbittorrent-nox", "")
if err != nil {
return err
}
return os.Chmod("/usr/local/bin/qbittorrent-nox", 0755)
}
func installService() (err error) {
// 获取初始化系统名字,对应的服务内容
initSystem, serviceContent, err := GetService()
if err != nil {
return err
}
// 初始化服务
service, err := gApp.NewService(initSystem, "qbittorrent.service", serviceContent)
if err != nil {
return err
}
// 服务安装
err = service.Install()
if err != nil {
return err
}
// 服务启动,开启自启
return service.Load()
}
func uninstallBinaryFile() (err error) {
err = os.RemoveAll("/usr/local/etc/qBittorrent")
if err != nil {
return err
}
return os.RemoveAll("/usr/local/bin/qbittorrent")
}
func uninstallService() (err error) {
// 获取初始化系统名字,对应的服务内容
initSystem, serviceContent, err := GetService()
if err != nil {
return err
}
// 初始化服务
service, err := gApp.NewService(initSystem, "qbittorrent.service", serviceContent)
if err != nil {
return err
}
// 服务停止,关闭自启
err = service.Unload()
if err != nil {
return err
}
// 服务卸载
return service.Uninstall()
}
func updateBinaryFile() (err error) {
// 获取初始化系统名字,对应的服务内容
initSystem, serviceContent, err := GetService()
if err != nil {
return err
}
// 初始化服务
service, err := gApp.NewService(initSystem, "qbittorrent.service", serviceContent)
if err != nil {
return err
}
// 服务停止,关闭自启
err = service.Unload()
if err != nil {
return err
}
// 执行新的二进制文件安装
err = installBinaryFile()
if err != nil {
return err
}
// 服务启动,开启自启
return service.Load()
}
func updateService() (err error) {
// 获取初始化系统名字,对应的服务内容
initSystem, serviceContent, err := GetService()
if err != nil {
return err
}
// 初始化服务
service, err := gApp.NewService(initSystem, "qbittorrent.service", serviceContent)
if err != nil {
return err
}
// 服务停止,关闭自启
err = service.Unload()
if err != nil {
return err
}
// 新的服务安装
err = service.Install()
if err != nil {
return err
}
// 服务启动,开启自启
return service.Load()
}
func reloadService() (err error) {
// 获取初始化系统名字,对应的服务内容
initSystem, serviceContent, err := GetService()
if err != nil {
return err
}
// 初始化服务
service, err := gApp.NewService(initSystem, "qbittorrent.service", serviceContent)
if err != nil {
return err
}
// 服务重载
return service.Reload()
}