Commit graph

330 commits

Author SHA1 Message Date
Martin Lund
5b6a106b34 Improve help and man page 2022-06-01 19:26:42 +02:00
Martin Lund
c94e8826fd Fix running without config file 2022-06-01 18:37:11 +02:00
Martin Lund
c96c3c4c83 Fix config file error messages 2022-06-01 18:23:14 +02:00
Martin Lund
c7b27b022f Redirect error messages to stderr 2022-05-24 13:35:27 +02:00
Martin Lund
9a1afc09c2 Fix parsing of default settings
Default configuration file settings were not parsed in case a section
was matched. Now we make sure that the default (unnamed) settings are
always parsed.
2022-05-15 22:37:59 +02:00
Martin Lund
8da06ebf2c Fix typo 2022-05-15 20:21:58 +02:00
Martin Lund
16cba00c54 Append to existing log file (no truncation) 2022-05-07 16:02:41 +02:00
lexaone
334ae28c76
fix for using option 'log' without 'log-filename' in config file 2022-05-03 17:44:43 +03:00
Peter Collingbourne
a81c43a01a Match user input against config section names if pattern matching was unsuccessful.
This allows for better config file ergonomics if the user has a diverse
set of serial devices as the name does not need to be specified in
the config file twice.
2022-04-20 15:31:41 -07:00
Martin Lund
b882827b97 Add socket info to show configuration 2022-04-20 19:43:29 +02:00
Martin Lund
b0b0856a8b Print socket info at startup 2022-04-20 19:20:26 +02:00
Martin Lund
7096bc3a96 Fix socket option parsing 2022-04-20 14:59:27 +02:00
Martin Lund
45c32f78a8 Update socket interface documentaton 2022-04-20 12:08:55 +02:00
Peter Collingbourne
fb453160ef Add support for external control via a Unix domain socket.
This feature allows an external program to inject output into and
listen to input from a serial port via a Unix domain socket (path
specified via the -S/--socket command line flag, or the socket
config file option) while tio is running. This is useful for ad-hoc
scripting of serial port interactions while still permitting manual
control. Since many serial devices (at least on Linux) get confused
when opened by multiple processes, and most commands do not know
how to correctly open a serial device, this allows a more convenient
usage model than directly writing to the device node from an external
program.

Any input from clients connected to the socket is sent on the serial
port as if entered at the terminal where tio is running (except that
ctrl-t sequences are not recognized), and any input from the serial
port is multiplexed to the terminal and all connected clients.

Sockets remain open while the serial port is disconnected, and writes
will block.

Example usage 1 (issue a command):

  echo command | nc -UN /path/to/socket > /dev/null

Example usage 2 (use the expect command to script an interaction):

  #!/usr/bin/expect -f

  set timeout -1
  log_user 0

  spawn nc -UN /path/to/socket
  set uart $spawn_id

  send -i $uart "command1\n"
  expect -i $uart "prompt> "
  send -i $uart "command2\n"
  expect -i $uart "prompt> "
2022-04-18 14:06:33 -07:00
Martin Lund
28c880cdab Remove verbose option
Remove the command-line verbose option but let the ctrl-t c feature
print some of the verbose information (active config path/section).
2022-04-13 16:28:30 +02:00
Sylvain LAFRASSE
c95226cb46 Update verbosity documentation. 2022-03-31 13:59:02 +02:00
Sylvain LAFRASSE
ac77f2dbb9 Add documentation of verbose mode. 2022-03-30 18:11:36 +02:00
Sylvain LAFRASSE
a543fbd7ef Factorize timestamp parsing to be coherent with command line format in configuration file. 2022-03-30 17:11:50 +02:00
Martin Lund
1ec39d1c7b Make libinih a fallback dependency
This means that in case meson does not find libinih it will
automatically clone libinih and include it in the build.

The libinih library is reconfigured to be statically built so that no
shared object will be installed.
2022-03-29 17:54:33 +02:00
Martin Lund
09bcd91bf0 Add support for defaults in config file
If no section name is specified the configuration will be considered the
default one.

This allows to set e.g. a default color code for sections which do not
configure a color code.
2022-03-19 18:37:37 +01:00
Martin Lund
03cf4ef197 Handle SIGHUP
Handle SIGHUP so that the registered exit handlers are called to restore
the terminal back to its orignal state.
2022-03-18 19:19:11 +01:00
Martin Lund
e81e76473a Add color configuration support 2022-03-11 16:09:21 +01:00
Martin Lund
410fc8bffe Bypass unused result warnings 2022-03-11 15:30:33 +01:00
Martin Lund
659336af51 Force dependency on libinih
Configuration file support is considered a mandatory feature.
2022-03-11 15:28:35 +01:00
Martin Lund
8965b7b42c Update headers 2022-03-11 15:15:39 +01:00
Martin Lund
a2b164519f Mostly cosmetic updates 2022-03-11 15:11:43 +01:00
Martin Lund
e9d5a23129 Move string_to_long() to misc.c 2022-03-11 13:33:35 +01:00
Liam Beguin
2e5c1ff20c add support for a configuration file
Signed-off-by: Liam Beguin <liambeguin@gmail.com>
2022-03-10 10:34:52 -05:00
Liam Beguin
2795ef6c79 misc: add _unused macro
Some parameters are expected to be unused.
Add a basic macro to mute these compiler warnings.

Signed-off-by: Liam Beguin <liambeguin@gmail.com>
2022-03-09 20:39:48 -05:00
Liam Beguin
04da651f09 options: expose string_to_long()
Expose string_to_long() so that other source files can use it.

Signed-off-by: Liam Beguin <liambeguin@gmail.com>
2022-03-09 20:15:30 -05:00
Martin Lund
b23397caa0 Fix text 2022-02-25 07:16:14 +01:00
Martin Lund
166d36d7d4 Correct text 2022-02-23 15:35:46 +01:00
Martin Lund
9f2cac4e41 Fix log exit print 2022-02-19 10:00:21 +01:00
Martin Lund
8f63f755da Cleanup color option 2022-02-19 09:45:02 +01:00
Martin Lund
45210bc741 Add support for automatically generated log filename
Automatically generate log filename if none is provided.

The auto generated file name is on the form:
"tio_DEVICE_YYYY-MM-DDTHH:MM:SS.log"
2022-02-19 09:29:33 +01:00
Martin Lund
d8a822a3fb Add support for configurable timestamp format
Also changes default timestamp format from ISO8601 to classic 24-hour
format as this is assumed to be the format that most users would prefer.

And reintroduces strict but optional ISO8601 format.

This feature allows to easily add more timestamp formats in the future.
2022-02-19 02:26:10 +01:00
Martin Lund
63ef65804f Reintroduce asm-generic/ioctls.h
It is needed for ppc builds.
2022-02-17 05:47:06 +01:00
Martin Lund
7ffeeccdf5 Merge branch 'osx-baudrate' of https://github.com/robey/tio into robey-osx-baudrate 2022-02-16 05:24:35 +01:00
Martin Lund
27f4d31380 Add macro hack to workaround older buggy glibc 2022-02-16 02:26:36 +01:00
Sylvain LAFRASSE
2d1e0f1233
Fix TTY device listing on Darwin. (#136) 2022-02-15 11:15:39 +01:00
Martin Lund
3d08787142 Fix setspeed2 compilation 2022-02-15 03:47:24 +01:00
Martin Lund
0e62995e6e Only apply color formatting when using color option
To help the color blind who may use custom terminal foreground /
background colors.
2022-02-15 00:48:10 +01:00
Martin Lund
274cb63197 Add '-c, --color' option
Allow user to select which ANSI color code to use to colorize the tio
text. To successfully set the color the color code must be in the range
0..255.

If color code is negative tio will print all available ANSI colors.

The default color is changed to bold white to make tio defaults usable
for most users, including color blind users.
2022-02-14 22:25:29 +01:00
Martin Lund
32e853e46e Fix setspeed2 check 2022-02-14 21:01:58 +01:00
Martin Lund
883e3b0bea Reintroduce long timestamp format
But make the timestamp format RFC3339 compliant instead. The RFC states:

NOTE: ISO 8601 defines date and time separated by "T".
      Applications using this syntax may choose, for the sake of
      readability, to specify a full-date and full-time separated by
      (say) a space character.

This way we keep the information specified by ISO 8601 but make it more
human readable which is better for the console output.
2022-02-13 19:29:13 +01:00
Martin Lund
32113076d6 Update version year 2022-02-13 18:28:04 +01:00
Martin Lund
d4c3751405 Meson cleanup 2022-02-13 11:07:51 +01:00
Martin Lund
137b2823af Update headers 2022-02-13 06:35:03 +01:00
Martin Lund
2375bc0c7b Show auto connect status in show configuration 2022-02-13 05:46:31 +01:00
Martin Lund
5d031a51f9 Cleanup 2022-02-13 02:13:43 +01:00