1 VLUNNER.CFG(5) "" "Configuration for vlunner(1)"
5 The file must be named 'vlunner.cfg' within the working directory of the
10 The file must be written in valid UTF-8.
12 The syntax follows generic TOML syntax. As a general overview:
32 Would be roughly equivalent to the following JSON:
36 "root_element": "abc",
58 There are several types for valid values in TOML:
66 Arrays and Tables are special since they can contain more TOML data within them.
67 However, the exact TOML spec will not be listed here.
71 *vlunnr.cfg* is used to configure *vlunnr*(1), which uses the configuration to
72 determine default behaviour and file inclusion processes.
74 *run_cmd*: Array of Strings
76 Each item within this array denotes an argument to pass, with the first one
77 being the equivalent of *argv[0]* in C, or *$0* in Bash. *String
78 Substitution* is done on these parameters.
80 Example: '["qemu-system-i386", "{disk}", "-serial", "stdio"]'
82 *limine_path*: String (optional)
84 Path to the Limine EFI binaries. If not specified, it defaults to
85 *./limine*. The path may be relative or absolute.
87 Example: '/usr/share/limine'
89 *limine_conf*: String (optional)
91 Path to *limine.conf* file. This will be placed in the root of the EFI
92 system partition of the generated image. Default is *./limine.conf*. The
93 path may be relative or absolute.
95 Example: './limine.conf'
97 *test_cmd*: Array of Strings (optional)
99 As *run_cmd*, but only used when using *cargo test*. The default is the
102 Example: '["qemu-system-i386", "{disk}", "-serial", "stdio", "-s", "-S"]'
104 *disk_path*: String (optional)
106 A path to place a copy of the disk image for later inspection. Default is
107 empty, which means no image copy is generated.
109 *target_name*: String (optional)
111 What to name the target when placed onto the disk image, which is primarily
112 used to keep a consistent *limine_conf*. Defaults to empty, which means no
113 renaming is performed, and the filename is retained from *cargo*.
115 *test_timeout*: Integer (optional)
117 How long the runner should wait on the test before timing out and failing
118 the test. This is measured in seconds. The default is 300, which gives 5
119 minutes before timeout. A value of 0 means vlunnr will never timeout the
122 *test_success_status*: Integer (optional)
124 The return status that is expected when running a test, which indicates
125 success. Default is 0.
127 *extra_items*: Array of Paths (optional)
129 Any extra files or directories to copy onto the image. These will first be
130 copied to a temporary directory, which will then be used to create the disk
131 image. If nothing is specified, nothing is copied onto the disk image except
132 for the Limine bootloader, binary image, and Limine configuration.
134 For perserving a file tree, it's best to put that file tree into a
135 directory, since *vlunnr*(1) will then preserve it by doing a recursive
138 # STRING SUBSTITUTION
140 A number of parameters must be specified at the time of execution of *vlunnr*.
141 For example, *cargo*(1) will pass the target binary's path to *vlunnr*, which
142 might not be the same each time. To get around this, string substitution may be
143 used for certain variable paths or strings. Defining custom variables is NOT
146 Each variable may be substituted into *run_cmd* or *test_cmd*, at any point
147 within any index except the 0th index (i.e, the program name). To do this,
148 surround the variable name with *{}*.
152 *disk*: The path to the generated disk image.
154 *bin*: The path to the renamed target binary.
156 *target*: The path that *cargo* passed to *vlunnr* for the binary.
160 *vlunnr*(1), *cargo*(1)
164 *vlunnr*(1), and *vlunnr.cfg* syntax are maintained by _Ayzee Patton
165 <vlpatton@vlpatton.gay>_. You may find sources at
166 _<https://git.vlpatton.gay/?p=vlunner.git>_.