Skip to content

Instantly share code, notes, and snippets.

@khamidou
Created December 3, 2015 21:47
Show Gist options
  • Save khamidou/368fd6d2789439b7f663 to your computer and use it in GitHub Desktop.
Save khamidou/368fd6d2789439b7f663 to your computer and use it in GitHub Desktop.
A python script to diff ansible-vault files
#!/usr/bin/env python
import os
import sys
import optparse
def print_usage():
print "usage: vault-diff --vault-password file --rev1 revision1 --rev2 revision2 --file file"
def main():
parser = optparse.OptionParser()
parser.add_option('--vault-password', action="store", default=False)
parser.add_option('--rev1', action="store", default=False)
parser.add_option('--rev2', action="store", default=False)
parser.add_option('--file', action="store", default=False)
if len(sys.argv[1:]) != 8:
print_usage()
exit(-1)
options, remainder = parser.parse_args(sys.argv[1:])
vault_pass = options.vault_password
rev1 = options.rev1
rev2 = options.rev2
filename = options.file
dct = dict(vault_pass=vault_pass, rev1=rev1, rev2=rev2,
filename=filename)
s = """/bin/bash -c 'vim -d <(ansible-vault view --vault-password-file={vault_pass} <(git show {rev1}:{filename})) <(ansible-vault view --vault-password-file={vault_pass} <(git show {rev2}:{filename}))'""".format(**dct)
os.system(s)
exit(0)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment