net.http: support v -http -d http_folder=vlib/_docs (allow customizing the folder, port, and index file through CLI arguments to v -http)

This commit is contained in:
Delyan Angelov 2025-05-14 21:54:21 +03:00
parent 65767d23d8
commit ded45dce4c

View File

@ -11,11 +11,11 @@ import net.urllib
@[params]
pub struct StaticServeParams {
pub mut:
folder string = '.' // the folder, that will be used as a base for serving all static resources; If it was /tmp, then: http://localhost:4001/x.txt => /tmp/x.txt
index_file string = 'index.html' // A request for http://localhost:4001/ will map to index.html, if that file is present.
auto_index bool = true // when an index_file is *not* present, a request for http://localhost:4001/ will list automatically all files in the folder.
filter_myexe bool = true // whether to filter the name of the static file executable from the automatic folder listings for / . Useful with `v -e 'import net.http.file; file.serve()'`
on string = 'localhost:4001' // on which address:port to listen for http requests
folder string = $d('http_folder', '.') // The folder, that will be used as a base for serving all static resources; If it was /tmp, then: http://localhost:4001/x.txt => /tmp/x.txt . Customize with `-d http_folder=vlib/_docs`.
index_file string = $d('http_index_file', 'index.html') // A request for http://localhost:4001/ will map to `index.html`, if that file is present.
auto_index bool = $d('http_auto_index', true) // when an index_file is *not* present, a request for http://localhost:4001/ will list automatically all files in the folder.
on string = $d('http_on', 'localhost:4001') // on which address:port to listen for http requests.
filter_myexe bool = true // whether to filter the name of the static file executable from the automatic folder listings for / . Useful with `v -e 'import net.http.file; file.serve()'`
workers int = runtime.nr_jobs() // how many worker threads to use for serving the responses, by default it is limited to the number of available cores; can be controlled with setting VJOBS
shutdown_after time.Duration = time.infinite // after this time has passed, the webserver will gracefully shutdown on its own
}