Guest User

Untitled

a guest
Mar 22nd, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. #
  4. # ansible-vault-merge: helper script for merging changes in ansible-vault file
  5. #
  6.  
  7. PROGNAME=$(basename $0)
  8.  
  9. usage() {
  10. cat <<EOF
  11. usage: ${PROGNAME} [OPTION]... [--] BASE CURRENT OTHER [LOCATION]
  12.  
  13. -h, --help Display this help
  14. EOF
  15. }
  16.  
  17. while test $# -gt 0; do
  18. case $1 in
  19. --help|-h)
  20. usage
  21. exit 0
  22. ;;
  23. --)
  24. shift 1
  25. break
  26. ;;
  27. -*)
  28. echo "${PROGNAME}: unknown option $1" >&2
  29. usage >&2
  30. exit 1
  31. ;;
  32. *)
  33. # probably the first positional argument
  34. break
  35. esac
  36. done
  37.  
  38. if test $# -lt 3; then
  39. echo "${PROGNAME}: not enough arguments" >&2
  40. usage >&2
  41. exit 1
  42. fi
  43.  
  44. BASE=$1
  45. CURRENT=$2
  46. OTHER=$3
  47. LOCATION=$4
  48.  
  49. set -e
  50.  
  51. echo "ansible-vault-merge ${LOCATION}"
  52.  
  53. ansible-vault decrypt $BASE > /dev/null
  54. ansible-vault decrypt $CURRENT > /dev/null
  55. ansible-vault decrypt $OTHER > /dev/null
  56.  
  57. if ! git merge-file -L CURRENT -L BASE -L OTHER $CURRENT $BASE $OTHER; then
  58. echo "Merge conflict; opening editor to resolve." >&2
  59. vimdiff $CURRENT $OTHER $BASE
  60. fi
  61.  
  62. ansible-vault encrypt $CURRENT
Add Comment
Please, Sign In to add comment