Files
herolib/lib/installers/web/traefik/traefik_model.v
2025-02-09 12:24:12 +01:00

55 lines
1.4 KiB
V

module traefik
import freeflowuniverse.herolib.data.paramsparser
import freeflowuniverse.herolib.data.encoderhero
import os
import freeflowuniverse.herolib.ui.console
import freeflowuniverse.herolib.core.pathlib
pub const version = '3.3.3'
const singleton = true
const default = true
//THIS THE THE SOURCE OF THE INFORMATION OF THIS FILE, HERE WE HAVE THE CONFIG OBJECT CONFIGURED AND MODELLED
@[heap]
pub struct TraefikServer {
pub mut:
name string = 'default'
// homedir string
// configpath string
// username string
password string @[secret]
// title string
// host string
// port int
}
//your checking & initialization code if needed
fn obj_init(mycfg_ TraefikServer)!TraefikServer{
mut mycfg:=mycfg_
return mycfg
}
//called before start if done
fn configure() ! {
mut installer := get()!
htaccesscode:=generate_htpasswd("admin",installer.password)!
mut mycode := $tmpl('templates/traefik.toml')
mut path := pathlib.get_file(path: "/etc/traefik/traefik.toml", create: true)!
path.write(mycode)!
console.print_debug(mycode)
}
/////////////NORMALLY NO NEED TO TOUCH
pub fn heroscript_dumps(obj TraefikServer) !string {
return encoderhero.encode[TraefikServer ](obj)!
}
pub fn heroscript_loads(heroscript string) !TraefikServer {
mut obj := encoderhero.decode[TraefikServer](heroscript)!
return obj
}