1
0
forked from x/icebergs
icebergs/base/cli/mirrors.go
2022-07-09 20:13:21 +08:00

59 lines
1.7 KiB
Go

package cli
import (
"strings"
ice "shylinux.com/x/icebergs"
"shylinux.com/x/icebergs/base/mdb"
kit "shylinux.com/x/toolkits"
)
func IsAlpine(m *ice.Message, arg ...string) bool {
if strings.Contains(m.Conf(RUNTIME, "host.OSID"), ALPINE) {
if len(arg) > 0 {
m.Cmd(MIRRORS, mdb.CREATE, "cli", arg[0], "cmd", arg[1])
}
return true
}
return false
}
const (
OSID = "OSID"
ALPINE = "alpine"
CENTOS = "centos"
UBUNTU = "ubuntu"
)
const MIRRORS = "mirrors"
func init() {
Index.Merge(&ice.Context{Commands: ice.Commands{
MIRRORS: {Name: "mirrors cli auto", Help: "软件镜像", Actions: ice.MergeAction(ice.Actions{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
m.Go(func() {
m.Sleep("1s")
IsAlpine(m, "curl", "system apk add curl")
IsAlpine(m, "make", "system apk add make")
IsAlpine(m, "gcc", "system apk add gcc")
IsAlpine(m, "vim", "system apk add vim")
IsAlpine(m, "tmux", "system apk add tmux")
if IsAlpine(m, "git", "system apk add git"); !IsAlpine(m, "go", "system apk add git go") {
m.Cmd(MIRRORS, mdb.CREATE, kit.SimpleKV("cli,cmd", "go", "install download https://golang.google.cn/dl/go1.15.5.linux-amd64.tar.gz usr/local"))
}
IsAlpine(m, "node", "system apk add nodejs")
IsAlpine(m, "python", "system apk add python2")
IsAlpine(m, "python2", "system apk add python2")
IsAlpine(m, "python3", "system apk add python3")
IsAlpine(m, "mvn", "system apk add openjdk8 maven")
IsAlpine(m, "javac", "system apk add openjdk8")
IsAlpine(m, "java", "system apk add openjdk8")
})
}},
mdb.CREATE: {Name: "create cli cmd", Help: "创建"},
}, mdb.HashAction(mdb.SHORT, "cli", mdb.FIELD, "time,cli,cmd"))},
}})
}