81 lines
1.4 KiB
Go
81 lines
1.4 KiB
Go
package executor
|
|
|
|
import "strings"
|
|
|
|
func BuildAgentOsOperator(osInfo string) *AgentOsOperator {
|
|
|
|
AgentOsOperatorCache = &AgentOsOperator{
|
|
InstallCommandPrefix: []string{
|
|
"apt-get", "install", "-y",
|
|
},
|
|
RemoveCommandPrefix: []string{"apt", "remove", "-y"},
|
|
CanAccessInternet: true,
|
|
IsOsTypeUbuntu: true,
|
|
IsAgentInnerWall: true,
|
|
AgentArch: "amd64",
|
|
AgentOSReleaseCode: "focal",
|
|
AgentServerInfo: nil,
|
|
}
|
|
|
|
// os type
|
|
detectByOsType(AgentOsOperatorCache, osInfo)
|
|
|
|
// internet
|
|
detectByInternet(AgentOsOperatorCache)
|
|
|
|
return AgentOsOperatorCache
|
|
}
|
|
|
|
func detectByOsType(os *AgentOsOperator, osInfo string) {
|
|
|
|
ubuntuSsRealseCode := [][]string{
|
|
{
|
|
"cat",
|
|
"/etc/os-release",
|
|
},
|
|
{
|
|
"grep",
|
|
"CODE",
|
|
},
|
|
{
|
|
"head",
|
|
"-1",
|
|
},
|
|
{
|
|
"cut",
|
|
"-d",
|
|
"=",
|
|
"-f",
|
|
"2",
|
|
},
|
|
}
|
|
|
|
if strings.HasPrefix(osInfo, "Ce") {
|
|
// centos
|
|
os.IsOsTypeUbuntu = false
|
|
os.InstallCommandPrefix = []string{
|
|
"yum", "install", "-y",
|
|
}
|
|
os.RemoveCommandPrefix = []string{
|
|
"yum", "remove",
|
|
}
|
|
|
|
} else {
|
|
// ubuntu
|
|
os.IsOsTypeUbuntu = true
|
|
os.RemoveCommandPrefix = []string{"apt", "remove", "-y"}
|
|
os.InstallCommandPrefix = []string{
|
|
"apt-get", "install", "-y",
|
|
}
|
|
|
|
// os release code
|
|
osRealseResult, _ := PipeLineCommandExecutor(ubuntuSsRealseCode)
|
|
os.AgentOSReleaseCode = osRealseResult[0]
|
|
}
|
|
|
|
}
|
|
|
|
func detectByInternet(os *AgentOsOperator) {
|
|
|
|
}
|