#!/bin/bash

# Run a diff between a couch document specified as the first parameter
# and the second parameter.
# Diff returns 0 if there is no difference. This way you can tell the data
# is already on the couch.
# Both the couch document and the second paramter will be pretty printed
# before comparison so differences in spaces etc. do not matter.
# All keys starting with an underscore on the couch such as _id and _rev
# will be removed before the comparison - we assume we want to compare
# the real data, not the metadata about the document as we usually do not
# know or care about what the id and revision will be.

curl -s --netrc-file /etc/couchdb/couchdb.netrc $1 \
 | python -mjson.tool \
 | grep -v '^\s*"_' \
 | diff -w - <(echo $2 | python -mjson.tool)