A tool to hide
stderrwhen a program runs successfully (i.e., returns exit code 0).
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:
MAILTOfirstname.lastname@example.org 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.
chronic you don't have to worry about that anymore!
MAILTOemail@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: firstname.lastname@example.org 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
Compile it yourself
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!