oxidecomputer / humility

Debugger for Hubris
Mozilla Public License 2.0
529 stars 51 forks source link

`humility i2c` could maybe return a non-zero exit code when the I2C operation returns an error #489

Open hawkw opened 5 months ago

hawkw commented 5 months ago

I wanted to use a bash until loop to retry a humility i2c command until it succeeds, but it looks like humility i2c (and possibly also humility hiffy?) exits with 0 when it was able to successfully execute the hiffy IPC operation on the device, but the IPC returned an error. For example:

eliza@niles ~ $ pfexec humility -t gimlet-c i2c -b rear --device 0x20 --register 0x00 --nbytes 1 --timeout 10000
humility: attached to 0483:3754:000D00344741500820383733 via ST-Link V3
Controller I2C4, device 0x20, register 0x0 = Err(BusLocked)
eliza@niles ~ $ echo $?
0
eliza@niles ~ $

IMO, it would be a bit nicer for humility to exit with a non-zero exit code when the on-device operation fails. That way, the error is visible to the user's shell and you don't have to do things like grepping for the string that indicates an error...