A tool to hide
stdout
andstderr
when a program runs successfully (i.e., returns exit code 0).
This is a go based version of the classic cronic
or chronic
tool. Chuck Houpt wrote the original chronic
.
If you've ever used cron
to run jobs, you know that it sends an email for any output generated by the command. This is why you see crontabs
that look like this:
MAILTO=admin@example.com
PATH=/usr/bin:/bin
0 4 0 0 0 my-noisy-command -vF >/dev/null 2>&1
This is an anti-pattern:
- If you failed to get the command line correct, then you'll end up getting an email.
- If anything goes wrong, you've lost the output.
- If you log to a file, then you have to rotate that log, even if 99% of the contents are useless.
With chronic
you don't have to worry about that anymore!
MAILTO=admin@example.com
PATH=/usr/bin:/bin
0 4 0 0 0 chronic my-noisy-command -vF
Now, you'll get no emails unless my-noisy-command
returns a non-zero exit code. If it does return a non-zero exit code, then you'll get an email that looks like this:
To: admin@example.com
Subject: [CRON] chronic my-noisy-command -vF
**** command ****
[`bash` `-c` `echo "boo"; echo "emergency" 1>&2; exit 10`]
**** stdout ****
stdout: Normal output from the noisy command.
stdout: Starting messages
stdout: Normal stuff
**** stderr ****
stderr: Standard error output from the noisy command.
stderr:
stderr: [FATAL] Something went wrong!
Exited with 10
brew install docwhat/tap/chronic
The latest release is available on github.com/docwhat/chronic/releases
. You can download the binary for your architecture and OS there.
go get docwhat.org/chronic
You'll need to install a recent version of Go and set it up. You can check the .travis.yml
file to see what version of go I'm using.
go get -u docwhat.org/chronic
I love contributions! Read CONTRIBUTING.md!