84 lines
1.7 KiB
Go
84 lines
1.7 KiB
Go
package executor
|
|
|
|
import (
|
|
"fmt"
|
|
"os/exec"
|
|
)
|
|
|
|
var RemoveForcePrefix = []string{"rm", "-rf"}
|
|
|
|
// BasicCommandExists 判定命令是否存在
|
|
func BasicCommandExists(commandName string) bool {
|
|
|
|
cmd := exec.Command("command", "-v", commandName)
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
log.DebugF("指令 %s 不存在", commandName)
|
|
return false
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
// BasicCommandExistsBatch 判定批量命令是否存在
|
|
func BasicCommandExistsBatch(commandNameList []string) (bool, string) {
|
|
|
|
for _, commandName := range commandNameList {
|
|
if !BasicCommandExists(commandName) {
|
|
return false, commandName
|
|
}
|
|
}
|
|
|
|
return true, ""
|
|
}
|
|
|
|
// BasicReplace 基础替换命令
|
|
func BasicReplace(filename string, origin string, replace string) bool {
|
|
|
|
// 暂不添加
|
|
//if !BasicFileExistAndNotNull(filename) {
|
|
// log.DebugF("文件替换")
|
|
//}
|
|
|
|
cmd := exec.Command("sed", "-i", "s/"+origin+"/"+replace+"/g", filename)
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
log.DebugF("替换文件 %s ,从 [%s] => [%s] 错误!", filename, origin, replace)
|
|
return false
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
func BasicFileExists(filename string) bool {
|
|
|
|
cmd := exec.Command("test", "-f", filename)
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
log.DebugF("文件 %s 不存在!", filename)
|
|
return false
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
// BasicFileExistAndNotNull 文件不为空返回true 文件为空返回false
|
|
func BasicFileExistAndNotNull(filename string) bool {
|
|
|
|
cmd := exec.Command("test", "-s", filename)
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
log.DebugF("文件 %s 为空!", filename)
|
|
return false
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
func BasicPrettyPrint(resultOk bool, resultLog []string) {
|
|
fmt.Printf("resultOK is => %#v\n", resultOk)
|
|
for _, s := range resultLog {
|
|
fmt.Println(s)
|
|
}
|
|
}
|