Re: [RFC PATCH] gpioset: only print prompt when stdout is tty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 23, 2023 at 03:54:41PM +0200, Esben Haabendal wrote:
> When gpioset interactive mode is used as intended, as a human controlled
> interface, stdout should be a tty.
> 

Yeah, no, the interactive mode is also intended to be script driven -
checkout the test suite, gpio-tools-tests.bat, as an example of it being
driven using a coproc from bash.
Removing the prompt would break the handshaking with the controlling
script - that is how it determines the slave process is up.

I'll try running your patch through the test suite tommorrow, but I'm
pretty sure it will break it - IIRC the code you removed was put there
precisely to get the test suite to run.

Have you tried running the test suite?

> By leaving out the prompt when stdout is not a tty, gpioset interactive mode can
> be used as a really simple deamon for controlling GPIOs by connecting it to a
> FIFO.
> 

It can do that already - just direct the output to /dev/null.
Which you would need in your case anyway - the prompt isn't the only
output - try piping a get command to your daemon and see what happens.

This works for me as a simple daemon script:

#!/bin/bash

pipe=/tmp/gpiosetd

mkfifo $pipe

trap "rm -f $pipe" EXIT

# as bash will block until something is written to the pipe...
echo "" > $pipe &
gpioset -i GPIO23=0 < $pipe > /dev/null

Does that not work for you?

Cheers,
Kent.



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux