Commit Graph

10 Commits

Author SHA1 Message Date
Liam Crilly
43f140dfd3 Tools: unitc Docker mode.
Introduces a new remote host scheme docker:// that specifies a local
container ID. By default, the control socket is assumed to be in the default
location, as per the Docker Official Images for Unit. If not, the path to
the control socket can be appended to the container ID.
2023-10-16 10:32:19 +01:00
Liam Crilly
599b035a54 Tools: unitc YAML mode.
Added --format option to manage configuration in other formats.
Initially, YAML is the only supported conversion format.
JSON/YAML conversion is performed with yq(1).

Suggested by: Torstein Krause Johansen <https://github.com/skybert>
Closes: #958 <https://github.com/nginx/unit/issues/958>
2023-10-10 15:06:36 +01:00
Liam Crilly
9ad207057c Tools: unitc quiet mode fix for macOS.
head -c 0 does not work on macOS (invalid byte count) but tail(1) is happy
to accept zero bytes, and does not have a performance penalty.
2023-10-03 14:57:17 +01:00
Liam Crilly
b42f6b1dc8 Tools: unitc edit mode for interactive configuration. 2023-06-07 14:45:35 +01:00
Liam Crilly
9ff59e6c4b Tools: improved ps(1) portability for unitc.
Improved cross-platform support by trying multiple ps(1) invocations to
obtain the unitd command line parameters. Additional error checking
detects when this process fails.

The first attempt uses `ps -wwo args=COMMAND -p` which has very broad
support and has the additional benefit of simplifying the output for
more reliable parsing of the process info. If that fails then we fall
back to simply `ps`.

The parsing of the process info has also changed. Instead of converting
'[]' into spaces we now convert them into explicit delimiters (using '^').
This is more reliable as it marks the beginning and the end of the info
we care about. Any trailing process information is now ignored (FreeBSD).

Additional error handling improves the robustness when starting unitd with
a different filename or from a relative path. In this case the control
socket and log file detection will fail when running `unitd --help`.
Additional error checking and messages are displayed when the control socket
cannot be determined. A single warning is shown when the log file cannot be
determined.
2023-06-01 17:53:12 +01:00
Andrei Zeliankou
71f8c58f7f Updated copyright notice. 2023-05-24 16:27:24 +01:00
Liam Crilly
c54331fa3d Tools: use control socket and log file from running instance.
If unitd was started with an explicit path then unitc will use that
binary instead of the default PATH to obtain the default control socket
and log file locations.
2023-04-04 11:29:53 +01:00
Liam Crilly
bbeccabe0a Tools: improved detection of unitd control socket.
Now unitc obtains the path to the unitd binary from information
contained in the unitd: main process. If unitd was started with an
explicit path then that path will be used to obtain the default
control socket, instead of using the unitd binary in $PATH.
2023-02-27 14:25:58 +00:00
Liam Crilly
a2b3992462 Tools: unitc avoid interactive rm(1) invocations. 2022-12-19 15:03:55 +00:00
Liam Crilly
101b262f1f Tools: Added unitc. 2022-12-14 16:20:08 +00:00