76 lines
2.1 KiB
V
76 lines
2.1 KiB
V
module generator
|
|
|
|
import incubaid.herolib.develop.codetools as code { File, Folder }
|
|
import incubaid.herolib.core.texttools
|
|
|
|
// generates the folder with runnable scripts of the actor
|
|
pub fn generate_scripts_folder(name string, example bool) Folder {
|
|
actor_name := '${texttools.snake_case(name)}_actor'
|
|
return Folder{
|
|
name: 'scripts'
|
|
files: [
|
|
generate_run_script(actor_name),
|
|
generate_docs_script(actor_name),
|
|
generate_run_actor_script(name),
|
|
generate_run_actor_example_script(name),
|
|
generate_run_http_server_script(name),
|
|
// generate_compile_script(actor_name),
|
|
// generate_generate_script(actor_name)
|
|
]
|
|
}
|
|
}
|
|
|
|
// Function to generate a script for running an actor
|
|
fn generate_run_script(actor_name string) File {
|
|
actor_title := texttools.title_case(actor_name)
|
|
dollar := '$'
|
|
return File{
|
|
name: 'run'
|
|
extension: 'sh'
|
|
content: $tmpl('./templates/run.sh.template')
|
|
}
|
|
}
|
|
|
|
// Function to generate a script for running an actor
|
|
fn generate_docs_script(actor_name string) File {
|
|
dollar := '$'
|
|
return File{
|
|
name: 'docs'
|
|
extension: 'vsh'
|
|
content: $tmpl('./templates/docs.vsh.template')
|
|
}
|
|
}
|
|
|
|
// Function to generate a script for running an actor
|
|
fn generate_run_actor_script(name string) File {
|
|
name_snake := texttools.snake_case(name)
|
|
name_pascal := texttools.pascal_case(name)
|
|
return File{
|
|
name: 'run_actor'
|
|
extension: 'vsh'
|
|
content: $tmpl('./templates/run_actor.vsh.template')
|
|
}
|
|
}
|
|
|
|
// Function to generate a script for running an example actor
|
|
fn generate_run_actor_example_script(name string) File {
|
|
name_snake := texttools.snake_case(name)
|
|
name_pascal := texttools.pascal_case(name)
|
|
return File{
|
|
name: 'run_actor_example'
|
|
extension: 'vsh'
|
|
content: $tmpl('./templates/run_actor_example.vsh.template')
|
|
}
|
|
}
|
|
|
|
// Function to generate a script for running an HTTP server
|
|
fn generate_run_http_server_script(name string) File {
|
|
port := 8080
|
|
name_snake := texttools.snake_case(name)
|
|
return File{
|
|
name: 'run_http_server'
|
|
extension: 'vsh'
|
|
content: $tmpl('./templates/run_http_server.vsh.template')
|
|
}
|
|
}
|