This page permanently redirects to gemini://code.pfad.fr/devf/.

devf command - code.pfad.fr/devf

go install code.pfad.fr/devf@latest

package devf provides livereload webserver for developers (inspired by [devd]). It attempts to do one thing and do it well: serve as a reverse proxy while injecting some JS to support livereloading.

=> devd

The livereload is triggered by a std-input newline or some OS-signals (usually provided by another tool).

Usage:

devf [flags]  [-- ]
# or using go run:     go run code.pfad.fr/devf@main [flags]  [-- ]
# or using nix flakes: nix run git+https://code.pfad.fr/devf [flags]  [-- ]

If contains ://, it will be interpreted as a URL, otherwise as a local folder (multiple folders are supported: they will be looked up in order).

The flags are:

-addr string
	address to listen to (default ":8080")
-sig value
	comma-separated list of signals which will trigger a reload
	(instead of stdin newline): abrt,hup,int,kill,pipe,quit,term,usr1,usr2

If a is provided, it will be launched in the background.

Example using inotifywait on linux

Local generation of the doc of this package (make doc):

inotifywait -m -e close_write --include "\.go$" -r . | \
	devf http://localhost:8181 -- vanitydoc -addr localhost:8181

Explanation (starting from the end of the command):

=> vanitydoc | http://localhost:8080 | inotifywait

Example using modd

**/*.gohtml server.is_running {
	daemon: devf -sig hup http://localhost:8989
}

[modd] will send a sighup to devf (which will trigger a reload) whenever a .gohtml file changes or the server.is_running file is written to (I usually do that in my main.go, when the server is ready to accept connections).

=> modd

To ensure that the livereload is injected on pages (especially error pages), make sure that the Content-Type header starts with text/html.

Advanced usage

If you need more control regarding the triggering of the reload, the reverse-proxying or of the local server, take a look at the [livereload] subpackage.

=> livereload

License

European Union Public License 1.2 or later (EUPL-1.2+). Using only the exported API of this library (or the CLI) is not considered "Derivative Works" (so you don't need to release your work under a EUPL-1.2 compatible license in such a case).

Files

=> local_fileserver.go | main.go | signal_linux.go

Directories

=> livereload

package livereload handles Server-sent events and injection of the livereload script into upstream HTML pages.

Forge

=> https://codeberg.org/pfad.fr/devf

git clone

https://codeberg.org/pfad.fr/devf.git
git@codeberg.org:pfad.fr/devf.git
Proxy Information
Original URL
gemini://code.pfad.fr/devf
Status Code
Success (20)
Meta
text/gemini; charset=utf-8
Capsule Response Time
304.434901 milliseconds
Gemini-to-HTML Time
1.453578 milliseconds

This content has been proxied by September (ba2dc).