add documentation gen script to actor

This commit is contained in:
timurgordon
2025-02-03 14:59:31 +01:00
parent af2f33d4f6
commit 10c15f6f8e
2 changed files with 62 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ pub fn generate_scripts_folder(name string, example bool) Folder {
name: 'scripts'
files: [
generate_run_script(actor_name),
generate_docs_script(actor_name),
generate_run_actor_script(actor_name),
// generate_run_example_actor_script(actor_name),
generate_run_http_server_script(actor_name, example),
@@ -29,6 +30,16 @@ fn generate_run_script(actor_name string) File {
}
}
// 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(actor_name string) File {
return File{

View File

@@ -0,0 +1,51 @@
#!/usr/bin/env -S v -n -w -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals run
import os
abs_dir_of_script := dir(@@FILE)
// Format code
println('Formatting code...')
if os.system('v fmt -w @{dollar}{abs_dir_of_script}/examples') != 0 {
eprintln('Warning: Failed to format examples')
}
if os.system('v fmt -w @{dollar}{abs_dir_of_script}/src') != 0 {
eprintln('Warning: Failed to format actor')
}
// Clean existing docs
println('Cleaning existing documentation...')
os.rmdir_all('_docs') or {}
os.rmdir_all('docs') or {}
os.rmdir_all('vdocs') or {}
herolib_path := os.join_path(abs_dir_of_script, 'lib')
os.chdir(herolib_path) or {
panic('Failed to change directory to herolib: @{dollar}{err}')
}
os.rmdir_all('_docs') or {}
os.rmdir_all('docs') or {}
os.rmdir_all('vdocs') or {}
// Generate HTML documentation
println('Generating HTML documentation...')
if os.system('v doc -m -f html . -readme -comments -no-timestamp -o ../docs') != 0 {
panic('Failed to generate HTML documentation')
}
os.chdir(abs_dir_of_script) or {
panic('Failed to change directory to abs_dir_of_script: @{dollar}{err}')
}
// Generate Markdown documentation
println('Generating Markdown documentation...')
os.rmdir_all('vdocs') or {}
if os.system('v doc -m -no-color -f md -o vdocs/herolib/') != 0 {
panic('Failed to generate Hero markdown documentation')
}
println('Documentation generation completed successfully!')