194 lines
4.8 KiB
V
194 lines
4.8 KiB
V
module installers
|
|
|
|
import freeflowuniverse.herolib.installers.base
|
|
// import freeflowuniverse.herolib.installers.develapps.vscode
|
|
// import freeflowuniverse.herolib.installers.develapps.chrome
|
|
// import freeflowuniverse.herolib.installers.virt.podman as podman_installer
|
|
// import freeflowuniverse.herolib.installers.virt.buildah as buildah_installer
|
|
// import freeflowuniverse.herolib.installers.virt.lima
|
|
// import freeflowuniverse.herolib.installers.net.mycelium
|
|
import freeflowuniverse.herolib.core.texttools
|
|
import freeflowuniverse.herolib.installers.lang.rust
|
|
import freeflowuniverse.herolib.installers.lang.golang
|
|
import freeflowuniverse.herolib.installers.lang.vlang
|
|
import freeflowuniverse.herolib.installers.lang.herolib
|
|
import freeflowuniverse.herolib.installers.lang.nodejs
|
|
import freeflowuniverse.herolib.installers.lang.python
|
|
// import freeflowuniverse.herolib.installers.web.zola
|
|
// import freeflowuniverse.herolib.installers.web.tailwind
|
|
// import freeflowuniverse.herolib.installers.hero.heroweb
|
|
// import freeflowuniverse.herolib.installers.hero.herodev
|
|
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
|
|
import freeflowuniverse.herolib.installers.sysadmintools.rclone
|
|
// import freeflowuniverse.herolib.installers.sysadmintools.prometheus
|
|
// import freeflowuniverse.herolib.installers.sysadmintools.grafana
|
|
// import freeflowuniverse.herolib.installers.sysadmintools.fungistor
|
|
// import freeflowuniverse.herolib.installers.sysadmintools.garage_s3
|
|
import freeflowuniverse.herolib.installers.infra.zinit_installer
|
|
|
|
@[params]
|
|
pub struct InstallArgs {
|
|
pub mut:
|
|
names string
|
|
reset bool
|
|
uninstall bool
|
|
gitpull bool
|
|
gitreset bool
|
|
start bool
|
|
}
|
|
|
|
pub fn names(args_ InstallArgs) []string {
|
|
names := '
|
|
base
|
|
caddy
|
|
chrome
|
|
hero
|
|
dagu
|
|
develop
|
|
fungistor
|
|
garage_s3
|
|
golang
|
|
grafana
|
|
hero
|
|
herodev
|
|
// heroweb
|
|
lima
|
|
mycelium
|
|
nodejs
|
|
herocontainers
|
|
prometheus
|
|
rclone
|
|
rust
|
|
tailwind
|
|
vlang
|
|
vscode
|
|
zinit
|
|
zola
|
|
'
|
|
mut ns := texttools.to_array(names)
|
|
ns.sort()
|
|
return ns
|
|
}
|
|
|
|
pub fn install_multi(args_ InstallArgs) ! {
|
|
mut args := args_
|
|
mut items := []string{}
|
|
for item in args.names.split(',').map(it.trim_space()) {
|
|
if item !in items {
|
|
items << item
|
|
}
|
|
}
|
|
for item in items {
|
|
match item {
|
|
'base' {
|
|
base.install(reset: args.reset)!
|
|
}
|
|
'develop' {
|
|
base.install(reset: args.reset, develop: true)!
|
|
}
|
|
'rclone' {
|
|
// rclone.install(reset: args.reset)!
|
|
mut rc := rclone.get()!
|
|
rc.install(reset: args.reset)!
|
|
}
|
|
'rust' {
|
|
mut i := rust.get()!
|
|
i.install(reset: args.reset)!
|
|
}
|
|
'golang' {
|
|
mut g := golang.get()!
|
|
g.install(reset: args.reset)!
|
|
}
|
|
'vlang' {
|
|
vlang.install(reset: args.reset)!
|
|
}
|
|
'hero' {
|
|
herolib.install(
|
|
reset: args.reset
|
|
git_pull: args.gitpull
|
|
git_reset: args.gitreset
|
|
)!
|
|
}
|
|
// 'hero' {
|
|
// herolib.hero_install(reset: args.reset)!
|
|
// }
|
|
// 'caddy' {
|
|
// caddy.install(reset: args.reset)!
|
|
// caddy.configure_examples()!
|
|
// }
|
|
// 'chrome' {
|
|
// chrome.install(reset: args.reset, uninstall: args.uninstall)!
|
|
// }
|
|
// 'mycelium' {
|
|
// mycelium.install(reset: args.reset)!
|
|
// mycelium.start()!
|
|
// }
|
|
// 'garage_s3' {
|
|
// mut garages3 := garage_s3.get()!
|
|
// garages3.install(reset: args.reset)!
|
|
// }
|
|
// 'fungistor' {
|
|
// fungistor.install(reset: args.reset)!
|
|
// }
|
|
// 'lima' {
|
|
// lima.install_(reset: args.reset, uninstall: args.uninstall)!
|
|
// }
|
|
// 'herocontainers' {
|
|
// mut podman_installer0 := podman_installer.get()!
|
|
// mut buildah_installer0 := buildah_installer.get()!
|
|
// if args.reset {
|
|
// podman_installer0.destroy()! // will remove all
|
|
// buildah_installer0.destroy()! // will remove all
|
|
// }
|
|
// podman_installer0.install()!
|
|
// buildah_installer0.install()!
|
|
// }
|
|
// 'prometheus' {
|
|
// prometheus.install(reset: args.reset)!
|
|
// }
|
|
// 'grafana' {
|
|
// grafana.install(reset: args.reset)!
|
|
// }
|
|
// 'vscode' {
|
|
// vscode.install(reset: args.reset)!
|
|
// }
|
|
'nodejs' {
|
|
mut i := nodejs.get()!
|
|
i.install(reset: args.reset)!
|
|
}
|
|
'python' {
|
|
mut i := python.get()!
|
|
i.install()!
|
|
}
|
|
// 'herodev' {
|
|
// herodev.install()!
|
|
// }
|
|
// 'heroweb' {
|
|
// heroweb.install()!
|
|
// }
|
|
// 'dagu' {
|
|
// // will call the installer underneith
|
|
// mut dserver := daguserver.get()!
|
|
// dserver.install()!
|
|
// dserver.restart()!
|
|
// // mut dagucl:=dserver.client()!
|
|
// }
|
|
// 'zola' {
|
|
// mut i2 := zola.get()!
|
|
// i2.install()! // will also install tailwind
|
|
// }
|
|
// 'tailwind' {
|
|
// mut i := tailwind.get()!
|
|
// i.install()!
|
|
// }
|
|
'zinit' {
|
|
mut i := zinit_installer.get()!
|
|
i.install()!
|
|
}
|
|
else {
|
|
return error('cannot find installer for: ${item}')
|
|
}
|
|
}
|
|
}
|
|
}
|