Daniel Shahaf wrote:
> Julian Foad wrote on Mon, Dec 10, 2018 at 18:23:00 +0000:
> > Robustness: teach it to only accumulate new entries, and not to wipe the 
> > file when there's a network glitch.
> 
> That's easy enough: just write 'set -e' [or use] double ampersands

I have done that but I think the script will still generate bad output if the 
'curl' commands fail; see TODO below.

> Another nice to have improvement would be making the 'svn ci' invocation
> silent — by adding --quiet, or by running it under chronic(1) (from package
> 'moreutils') — so the people on the crontab's MAILTO list don't get emails for
> successful commits.

Added '-q'etc.

I also made it:
  * not commit if the only change is in the the "# Generated ... <date>" line.
  * search only in the "publish" subtree, so it doesn't pick up the example in 
its own script

New version:

# Update our Haxx-URL-to-Message-Id map (a manual cron entry, for now)
0 4 * * * fn=publish/.message-ids.tsv; cd ~/src/svn/site && svn up -q && 
tools/haxx-url-to-message-id.sh publish > $fn.tmp && if diff -q -I'^# 
Generated' $fn $fn.tmp > /dev/null; then rm $fn.tmp; else mv $fn.tmp $fn && svn 
ci -q -m "* $fn: Automatically regenerated" $fn; fi

TODO:
  * only add new entries (actually it happens to work this way already, because 
it finds its own previous output file as part of the scan);
  * only query 'haxx.se' for new entries, not all the existing entries again 
each time;
  * the 'curl | perl' part of the script wants a way to fail if the 'curl' 
fails (Bash has 'set -o pipefail' for this).

-- 
- Julian

Reply via email to