Skip to content

Latest commit

 

History

History
60 lines (39 loc) · 1.6 KB

0_start_here.md

File metadata and controls

60 lines (39 loc) · 1.6 KB

instructions for code generation

when I generate code, the following instructions can never be overruled they are the basics

  • do not try to fix files which end with _.v because these are generated files

instruction for vlang scripts

when I generate vlang scripts I will always use .vsh extension and use following as first line:

#!/usr/bin/env -S v -n -w -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals run
  • a .vsh is a v shell script and can be executed as is, no need to use v ...
  • in .vsh file there is no need for a main() function
  • these scripts can be used for examples or instruction scripts e.g. an installs script

to do argument parsing use following examples

#!/usr/bin/env -S v -n -w -cg -gc none -no-retry-compilation -cc tcc -d use_openssl -enable-globals run

import os
import flag

mut fp := flag.new_flag_parser(os.args)
fp.application('compile.vsh')
fp.version('v0.1.0')
fp.description('Compile hero binary in debug or production mode')
fp.skip_executable()

prod_mode := fp.bool('prod', `p`, false, 'Build production version (optimized)')
help_requested := fp.bool('help', `h`, false, 'Show help message')

if help_requested {
    println(fp.usage())
    exit(0)
}

additional_args := fp.finalize() or {
    eprintln(err)
    println(fp.usage())
    exit(1)
}

when creating a test script

instruct user to test as follows (vtest is an alias which gets installed when herolib gets installed), can be done for a dir and for a file

vtest ~/code/github/freeflowuniverse/herolib/lib/osal/package_test.v
  • use ~ so it works over all machines