The embedded filesystem was in package main, making it inaccessible to
alternative main packages that need to serve the HTTP interface. Moving
the embed directive and web handlers to a dedicated web package allows
any package to import and use the web UI functionality.
This also improves separation of concerns by isolating static file
serving, template handling, and dev server proxying in a single package,
and simplifies the API by removing the staticContent parameter from
NewHandler.
Ref #512 and #15
The envconfig package introduced in 77cc83b does not handle map of
structs, so we have to handle hamlib_rigs manually.
This also defaults the "network" attribute to "tcp", which is what most
users want (for rigctld).
This eliminates the need for Linux's AX25 stack when using Direwolf or
AGWPE TNCs. It makes AGWPE the default AX.25 engine if the build does
not include Linux AX.25 support.
Direwolf >= v1.6 is recommended (< v1.2 is unsupported).
Closes#367
By doing graceful shutdown, we're able to properly close all of the open
resources such as modem connections and ongoing sessions.
This will allow transport drivers controlling stateful TNCs (e.g.
ptc-go) to recover the initial TNC state before termination.
Resolves#314
Addresses https://github.com/la5nta/pat/issues/297
This commit adds support for non-interactive message sending from the
command line, in order to support scriptable interactions.
To do this, we fork the compose path into 3:
- Interactive (existing)
- Non-Interactive (based on command-line arguments and stdin)
- Reply (synonym for interactive)
This should be particularly useful when scriping against Pat. It also
serves as a sort of documentation of various environment variables that
effects Pat.
* Deprecate `forms_path` in the config file and replace with `--forms` flag
* Clean up `optionsSet()` to show correct defaults
* Clean up places that detected when `forms_path` was not configured (before it had a default)
Resolves https://github.com/la5nta/pat/issues/287
* Replace(..., -1) with ReplaceAll
* Variable names hiding packages
* Error messages start with lowercase and no end punctuation
* Don't `defer` in a loop
* Etc.