64 lines
1.4 KiB
V
64 lines
1.4 KiB
V
module tfgrid3deployer
|
|
|
|
import freeflowuniverse.herolib.data.paramsparser
|
|
import os
|
|
|
|
pub const version = '1.0.0'
|
|
const singleton = false
|
|
const default = true
|
|
|
|
pub fn heroscript_default() !string {
|
|
ssh_key := os.getenv_opt('SSH_KEY') or { '' }
|
|
mnemonic := os.getenv_opt('TFGRID_MNEMONIC') or { '' }
|
|
network := os.getenv_opt('TFGRID_NETWORK') or { 'main' } // main,test,dev,qa
|
|
heroscript := "
|
|
!!tfgrid3deployer.configure name:'default'
|
|
ssh_key: '${ssh_key}'
|
|
mnemonic: '${mnemonic}'
|
|
network: ${network}
|
|
|
|
"
|
|
if ssh_key.len == 0 || mnemonic.len == 0 || network.len == 0 {
|
|
return error('please configure the tfgrid deployer or set SSH_KEY, TFGRID_MNEMONIC, and TFGRID_NETWORK.')
|
|
}
|
|
return heroscript
|
|
}
|
|
|
|
pub enum Network {
|
|
dev
|
|
main
|
|
test
|
|
qa
|
|
}
|
|
|
|
pub struct TFGridDeployer {
|
|
pub mut:
|
|
name string = 'default'
|
|
ssh_key string
|
|
mnemonic string
|
|
network Network
|
|
}
|
|
|
|
fn cfg_play(p paramsparser.Params) ! {
|
|
network_str := p.get_default('network', 'main')!
|
|
network := match network_str {
|
|
'dev' { Network.dev }
|
|
'test' { Network.test }
|
|
'qa' { Network.qa }
|
|
else { Network.main }
|
|
}
|
|
|
|
mut mycfg := TFGridDeployer{
|
|
ssh_key: p.get_default('ssh_key', '')!
|
|
mnemonic: p.get_default('mnemonic', '')!
|
|
network: network
|
|
}
|
|
set(mycfg)!
|
|
}
|
|
|
|
fn obj_init(obj_ TFGridDeployer) !TFGridDeployer {
|
|
// never call get here, only thing we can do here is work on object itself
|
|
mut obj := obj_
|
|
return obj
|
|
}
|