summaryrefslogtreecommitdiff
path: root/puppet/modules/couchdb/files/couch-doc-diff
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2016-06-09 17:32:31 +0200
committervarac <varacanero@zeromail.org>2016-06-14 12:05:18 +0200
commit1a18586f60291405af739fc787506566cf63e79c (patch)
treefa5300de6fa9ec990b965d789aa3b75f3b7a3dd2 /puppet/modules/couchdb/files/couch-doc-diff
parent6087aa329ff92ce02107792faf233279e6a77d55 (diff)
git subrepo clone https://leap.se/git/puppet_couchdb puppet/modules/couchdb
subrepo: subdir: "puppet/modules/couchdb" merged: "76ff149" upstream: origin: "https://leap.se/git/puppet_couchdb" branch: "master" commit: "76ff149" git-subrepo: version: "0.3.0" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "cb2995b"
Diffstat (limited to 'puppet/modules/couchdb/files/couch-doc-diff')
-rw-r--r--puppet/modules/couchdb/files/couch-doc-diff17
1 files changed, 17 insertions, 0 deletions
diff --git a/puppet/modules/couchdb/files/couch-doc-diff b/puppet/modules/couchdb/files/couch-doc-diff
new file mode 100644
index 00000000..a5907d5e
--- /dev/null
+++ b/puppet/modules/couchdb/files/couch-doc-diff
@@ -0,0 +1,17 @@
+#!/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)