101 lines
2.6 KiB
V
101 lines
2.6 KiB
V
module playcmds
|
||
|
||
import incubaid.herolib.core.playbook { PlayBook }
|
||
import incubaid.herolib.data.atlas
|
||
import incubaid.herolib.biz.bizmodel
|
||
import incubaid.herolib.mycelium.incatokens
|
||
import incubaid.herolib.web.site
|
||
import incubaid.herolib.virt.hetznermanager
|
||
import incubaid.herolib.virt.heropods
|
||
import incubaid.herolib.web.docusaurus
|
||
import incubaid.herolib.clients.openai
|
||
import incubaid.herolib.clients.giteaclient
|
||
import incubaid.herolib.osal.tmux
|
||
import incubaid.herolib.installers.base
|
||
import incubaid.herolib.installers.lang.vlang
|
||
import incubaid.herolib.installers.lang.herolib
|
||
import incubaid.herolib.installers.horus.coordinator
|
||
import incubaid.herolib.installers.horus.supervisor
|
||
import incubaid.herolib.installers.horus.herorunner
|
||
import incubaid.herolib.installers.horus.osirisrunner
|
||
import incubaid.herolib.installers.horus.salrunner
|
||
import incubaid.herolib.installers.virt.podman
|
||
import incubaid.herolib.installers.virt.kubernetes_installer
|
||
import incubaid.herolib.installers.infra.gitea
|
||
import incubaid.herolib.builder
|
||
|
||
// -------------------------------------------------------------------
|
||
// run – entry point for all HeroScript play‑commands
|
||
// -------------------------------------------------------------------
|
||
|
||
@[params]
|
||
pub struct PlayArgs {
|
||
pub mut:
|
||
heroscript string
|
||
heroscript_path string
|
||
plbook ?PlayBook
|
||
reset bool
|
||
emptycheck bool = true
|
||
}
|
||
|
||
pub fn play(args_ PlayArgs) ! {
|
||
return run(args_)
|
||
}
|
||
|
||
pub fn run(args_ PlayArgs) ! {
|
||
mut args := args_
|
||
// println('DEBUG: the args is: ${args}')
|
||
mut plbook := args.plbook or {
|
||
playbook.new(text: args.heroscript, path: args.heroscript_path)!
|
||
}
|
||
|
||
// Core actions
|
||
play_core(mut plbook)!
|
||
|
||
// Git actions
|
||
play_git(mut plbook)!
|
||
|
||
// Tmux actions
|
||
tmux.play(mut plbook)!
|
||
|
||
// Builder actions (nodes and commands)
|
||
builder.play(mut plbook)!
|
||
|
||
// Business model (e.g. currency, bizmodel)
|
||
bizmodel.play(mut plbook)!
|
||
|
||
// OpenAI client
|
||
openai.play(mut plbook)!
|
||
|
||
// Website / docs
|
||
site.play(mut plbook)!
|
||
|
||
incatokens.play(mut plbook)!
|
||
atlas.play(mut plbook)!
|
||
docusaurus.play(mut plbook)!
|
||
hetznermanager.play(mut plbook)!
|
||
hetznermanager.play2(mut plbook)!
|
||
heropods.play(mut plbook)!
|
||
|
||
base.play(mut plbook)!
|
||
herolib.play(mut plbook)!
|
||
vlang.play(mut plbook)!
|
||
podman.play(mut plbook)!
|
||
kubernetes_installer.play(mut plbook)!
|
||
gitea.play(mut plbook)!
|
||
|
||
giteaclient.play(mut plbook)!
|
||
|
||
// Horus
|
||
coordinator.play(mut plbook)!
|
||
supervisor.play(mut plbook)!
|
||
herorunner.play(mut plbook)!
|
||
osirisrunner.play(mut plbook)!
|
||
salrunner.play(mut plbook)!
|
||
|
||
if args.emptycheck {
|
||
// Ensure we did not leave any actions un‑processed
|
||
plbook.empty_check()!
|
||
}
|
||
}
|