This commit is contained in:
2025-07-30 12:52:59 +02:00
parent c038334e67
commit 44d3edca55
17 changed files with 202 additions and 177 deletions

View File

@@ -0,0 +1,9 @@
module playcmds
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
// pub fn scheduler(heroscript string) ! {
// daguserver.play(
// heroscript: heroscript
// )!
// }

View File

@@ -0,0 +1,95 @@
module playcmds
// import freeflowuniverse.herolib.clients.daguclient
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
import freeflowuniverse.herolib.core.playbook
import freeflowuniverse.herolib.ui.console
import os
// pub fn play_dagu(mut plbook playbook.PlayBook) ! {
// // dagu_actions := plbook.find(filter: 'dagu.')!
// // if dagu_actions.len == 0 {
// // return
// // }
// // play_dagu_basic(mut plbook)!
// // play_dagu_configure(mut plbook)!
// }
// // play_dagu plays the dagu play commands
// pub fn play_dagu_basic(mut plbook playbook.PlayBook) ! {
// // mut install_actions := plbook.find(filter: 'daguserver.configure')!
// // if install_actions.len > 0 {
// // for install_action in install_actions {
// // mut p := install_action.params
// // panic("daguinstall play")
// // }
// // }
// // dagu_actions := plbook.find(filter: 'daguserver.install')!
// // if dagu_actions.len > 0 {
// // panic("daguinstall play")
// // return
// // }
// // mut config_actions := plbook.find(filter: 'dagu.configure')!
// // mut d := if config_actions.len > 1 {
// // return error('can only have 1 config action for dagu')
// // } else if config_actions.len == 1 {
// // mut p := config_actions[0].params
// // instance := p.get_default('instance', 'default')!
// // port := p.get_int_default('port', 8888)!
// // username := p.get_default('username', '')!
// // password := p.get_default('password', '')!
// // config_actions[0].done = true
// // mut server := daguserver.configure(instance,
// // port: port
// // username: username
// // password: password
// // )!
// // server.start()!
// // console.print_debug('Dagu server is running at http://localhost:${port}')
// // console.print_debug('Username: ${username} password: ${password}')
// // // configure dagu client with server url and api secret
// // server_cfg := server.config()!
// // daguclient.get(instance,
// // url: 'http://localhost:${port}'
// // apisecret: server_cfg.secret
// // )!
// // } else {
// // mut server := daguserver.get('')!
// // server.start()!
// // daguclient.get('')!
// // }
// // mut dags := map[string]DAG{}
// // for mut action in plbook.find(filter: 'dagu.new_dag')! {
// // mut p := action.params
// // name := p.get_default('name', '')!
// // dags[name] = DAG{}
// // action.done = true
// // }
// // for mut action in plbook.find(filter: 'dagu.add_step')! {
// // mut p := action.params
// // dag := p.get_default('dag', 'default')!
// // name := p.get_default('name', 'default')!
// // command := p.get_default('command', '')!
// // dags[dag].step_add(
// // nr: dags.len
// // name: name
// // command: command
// // )!
// // }
// // for mut action in plbook.find(filter: 'dagu.run')! {
// // mut p := action.params
// // dag := p.get_default('dag', 'default')!
// // // d.new_dag(dags[dag])!
// // panic('to implement')
// // }
// }

View File

@@ -0,0 +1,64 @@
module playcmds
import freeflowuniverse.herolib.core.playbook
// import freeflowuniverse.herolib.threefold.grid
// import freeflowuniverse.herolib.threefold.tfrobot
// import os
// pub fn play_threefold(mut plbook playbook.PlayBook) ! {
// panic('fix tfrobot module')
// // mut config_actions := plbook.find(filter: 'threefold.configure')!
// // mnemonics_ := os.getenv_opt('TFGRID_MNEMONIC') or { '' }
// // mut ssh_key := os.getenv_opt('SSH_KEY') or { '' }
// // tfrobot.configure('play', network: 'main', mnemonics: mnemonics_)!
// // mut robot := tfrobot.get('play')!
// // if config_actions.len > 1 {
// // return error('can only have 1 config action for threefold')
// // } else if config_actions.len == 1 {
// // mut a := config_actions[0]
// // mut p := a.params
// // mut network := p.get_default('network', 'main')!
// // mnemonics := p.get_default('mnemonics', '')!
// // ssh_key = p.get_default('ssh_key', '')!
// // network = network.to_lower()
// // // mnemonics string
// // // network string = 'main'
// // tfrobot.configure('play', network: network, mnemonics: mnemonics)!
// // robot = tfrobot.get('play')!
// // config_actions[0].done = true
// // }
// // cfg := robot.config()!
// // if cfg.mnemonics == '' {
// // return error('TFGRID_MNEMONIC should be specified as env variable')
// // }
// // if ssh_key == '' {
// // return error('SSHKey should be specified as env variable')
// // }
// // panic('implement')
// // for mut action in plbook.find(filter: 'threefold.deploy_vm')! {
// // mut p := action.params
// // deployment_name := p.get_default('deployment_name', 'deployment')!
// // name := p.get_default('name', 'vm')!
// // ssh_key := p.get_default('ssh_key', '')!
// // cores := p.get_int_default('cores', 1)!
// // memory := p.get_int_default('memory', 20)!
// // panic("implement")
// // action.done = true
// // }
// // for mut action in plbook.find(filter: 'threefold.deploy_zdb')! {
// // panic("implement")
// // action.done = true
// // }
// }

View File

@@ -1,9 +0,0 @@
module playcmds
import freeflowuniverse.herolib.installers.sysadmintools.daguserver
pub fn scheduler(heroscript string) ! {
daguserver.play(
heroscript: heroscript
)!
}

View File

@@ -1,7 +1,7 @@
module playcmds
import freeflowuniverse.herolib.develop.gittools
import freeflowuniverse.herolib.core.playbook
import freeflowuniverse.herolib.core.playbook { PlayBook }
import freeflowuniverse.herolib.ui.console
// !!context.configure
@@ -9,7 +9,14 @@ import freeflowuniverse.herolib.ui.console
// coderoot:...
// interactive:true
pub fn play_core(mut plbook playbook.PlayBook) ! {
pub fn play_core(args_ PlayArgs) !PlayBook {
mut args := args_
mut plbook := args.plbook or {
playbook.new(text: args.heroscript, path: args.heroscript_path)!
}
// for mut action in plbook.find(filter: 'context.configure')! {
// mut p := action.params
// mut session := plbook.session
@@ -92,4 +99,6 @@ pub fn play_core(mut plbook playbook.PlayBook) ! {
// }
// action.done = true
// }
return plbook
}

View File

@@ -1,95 +0,0 @@
module playcmds
// import freeflowuniverse.herolib.clients.daguclient
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
// import freeflowuniverse.herolib.installers.sysadmintools.daguserver
import freeflowuniverse.herolib.core.playbook
import freeflowuniverse.herolib.ui.console
import os
pub fn play_dagu(mut plbook playbook.PlayBook) ! {
// dagu_actions := plbook.find(filter: 'dagu.')!
// if dagu_actions.len == 0 {
// return
// }
// play_dagu_basic(mut plbook)!
// play_dagu_configure(mut plbook)!
}
// play_dagu plays the dagu play commands
pub fn play_dagu_basic(mut plbook playbook.PlayBook) ! {
// mut install_actions := plbook.find(filter: 'daguserver.configure')!
// if install_actions.len > 0 {
// for install_action in install_actions {
// mut p := install_action.params
// panic("daguinstall play")
// }
// }
// dagu_actions := plbook.find(filter: 'daguserver.install')!
// if dagu_actions.len > 0 {
// panic("daguinstall play")
// return
// }
// mut config_actions := plbook.find(filter: 'dagu.configure')!
// mut d := if config_actions.len > 1 {
// return error('can only have 1 config action for dagu')
// } else if config_actions.len == 1 {
// mut p := config_actions[0].params
// instance := p.get_default('instance', 'default')!
// port := p.get_int_default('port', 8888)!
// username := p.get_default('username', '')!
// password := p.get_default('password', '')!
// config_actions[0].done = true
// mut server := daguserver.configure(instance,
// port: port
// username: username
// password: password
// )!
// server.start()!
// console.print_debug('Dagu server is running at http://localhost:${port}')
// console.print_debug('Username: ${username} password: ${password}')
// // configure dagu client with server url and api secret
// server_cfg := server.config()!
// daguclient.get(instance,
// url: 'http://localhost:${port}'
// apisecret: server_cfg.secret
// )!
// } else {
// mut server := daguserver.get('')!
// server.start()!
// daguclient.get('')!
// }
// mut dags := map[string]DAG{}
// for mut action in plbook.find(filter: 'dagu.new_dag')! {
// mut p := action.params
// name := p.get_default('name', '')!
// dags[name] = DAG{}
// action.done = true
// }
// for mut action in plbook.find(filter: 'dagu.add_step')! {
// mut p := action.params
// dag := p.get_default('dag', 'default')!
// name := p.get_default('name', 'default')!
// command := p.get_default('command', '')!
// dags[dag].step_add(
// nr: dags.len
// name: name
// command: command
// )!
// }
// for mut action in plbook.find(filter: 'dagu.run')! {
// mut p := action.params
// dag := p.get_default('dag', 'default')!
// // d.new_dag(dags[dag])!
// panic('to implement')
// }
}

View File

@@ -3,10 +3,10 @@ module playcmds
import freeflowuniverse.herolib.core.playbook { PlayBook }
import freeflowuniverse.herolib.ui.console
// import freeflowuniverse.herolib.ui.console
import freeflowuniverse.herolib.web.docusaurus
pub fn play(args_ PlayArgs) ! {
pub fn play(args_ PlayArgs) !PlayBook {
mut args := args_
mut plbook := args.plbook or {
playbook.new(text: args.heroscript, path: args.heroscript_path)!
@@ -45,4 +45,6 @@ pub fn play(args_ PlayArgs) ! {
}
return plbook
}

View File

@@ -1,10 +1,16 @@
module playcmds
import freeflowuniverse.herolib.develop.luadns
import freeflowuniverse.herolib.core.playbook
import os
import freeflowuniverse.herolib.core.playbook {PlayBook}
// import os
pub fn play_luadns(args_ PlayArgs) !PlayBook {
mut args := args_
mut plbook := args.plbook or {
playbook.new(text: args.heroscript, path: args.heroscript_path)!
}
pub fn play_luadns(mut plbook playbook.PlayBook) ! {
// Variables below are not used, commenting them out
// mut buildroot := '${os.home_dir()}/hero/var/mdbuild'
// mut publishroot := '${os.home_dir()}/hero/www/info'
@@ -33,4 +39,6 @@ pub fn play_luadns(mut plbook playbook.PlayBook) ! {
dns.set_domain(domain, ip)!
action.done = true
}
return plbook
}

View File

@@ -1,9 +1,14 @@
module playcmds
import freeflowuniverse.herolib.osal.sshagent
import freeflowuniverse.herolib.core.playbook
import freeflowuniverse.herolib.core.playbook {PlayBook}
pub fn play_ssh(args_ PlayArgs) !PlayBook {
mut args := args_
mut plbook := args.plbook or {
playbook.new(text: args.heroscript, path: args.heroscript_path)!
}
pub fn play_ssh(mut plbook playbook.PlayBook) ! {
mut agent := sshagent.new()!
for mut action in plbook.find(filter: 'sshagent.*')! {
mut p := action.params
@@ -19,4 +24,5 @@ pub fn play_ssh(mut plbook playbook.PlayBook) ! {
}
action.done = true
}
return plbook
}

View File

@@ -1,64 +0,0 @@
module playcmds
import freeflowuniverse.herolib.core.playbook
// import freeflowuniverse.herolib.threefold.grid
// import freeflowuniverse.herolib.threefold.tfrobot
// import os
pub fn play_threefold(mut plbook playbook.PlayBook) ! {
panic('fix tfrobot module')
// mut config_actions := plbook.find(filter: 'threefold.configure')!
// mnemonics_ := os.getenv_opt('TFGRID_MNEMONIC') or { '' }
// mut ssh_key := os.getenv_opt('SSH_KEY') or { '' }
// tfrobot.configure('play', network: 'main', mnemonics: mnemonics_)!
// mut robot := tfrobot.get('play')!
// if config_actions.len > 1 {
// return error('can only have 1 config action for threefold')
// } else if config_actions.len == 1 {
// mut a := config_actions[0]
// mut p := a.params
// mut network := p.get_default('network', 'main')!
// mnemonics := p.get_default('mnemonics', '')!
// ssh_key = p.get_default('ssh_key', '')!
// network = network.to_lower()
// // mnemonics string
// // network string = 'main'
// tfrobot.configure('play', network: network, mnemonics: mnemonics)!
// robot = tfrobot.get('play')!
// config_actions[0].done = true
// }
// cfg := robot.config()!
// if cfg.mnemonics == '' {
// return error('TFGRID_MNEMONIC should be specified as env variable')
// }
// if ssh_key == '' {
// return error('SSHKey should be specified as env variable')
// }
// panic('implement')
// for mut action in plbook.find(filter: 'threefold.deploy_vm')! {
// mut p := action.params
// deployment_name := p.get_default('deployment_name', 'deployment')!
// name := p.get_default('name', 'vm')!
// ssh_key := p.get_default('ssh_key', '')!
// cores := p.get_int_default('cores', 1)!
// memory := p.get_int_default('memory', 20)!
// panic("implement")
// action.done = true
// }
// for mut action in plbook.find(filter: 'threefold.deploy_zdb')! {
// panic("implement")
// action.done = true
// }
}