Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. ```yaml
  2. d_weechat:
  3. cmpignore:
  4. - '*/weechat_fifo'
  5. - '*/script/plugins.xml.gz'
  6. - '*/logs'
  7. dst: ~/.config/weechat
  8. src: .config/weechat
  9. trans: gpg-single "sec.conf"
  10. trans_write: gpg-single "sec.conf"
  11. # trans: gpg-weechat
  12. # trans_write: gpg-weechat
  13. upignore:
  14. - '*/weechat_fifo'
  15. - '*/script/plugins.xml.gz'
  16. - '*/logs'
  17.  
  18. d_ssh:
  19. cmpignore:
  20. - '*/id_*'
  21. - '*_rsa'
  22. - '*_rsa.pub'
  23. - '*/known_hosts*'
  24. - '*/conn-github.com'
  25. dst: ~/.ssh
  26. src: .ssh
  27. trans: gpg-single "config"
  28. trans_write: gpg-single "config"
  29. # trans: gpg-ssh
  30. # trans_write: gpg-ssh
  31. upignore:
  32. - '*/id_*'
  33. - '*_rsa'
  34. - '*_rsa.pub'
  35. - '*/known_hosts*'
  36. - '*/conn-github.com'
  37.  
  38. trans_read:
  39. gpg: '"$HOME/.dotfiles/bin/gpg-decrypt" "{0}" "{1}"'
  40. gpg-single: '"{{@@ _dotrepo @@}}/bin/gpg-decrypt" "{0}" "{1}" "{2}"'
  41. # gpg-ssh: '"$HOME/.dotfiles/bin/gpg-decrypt" "{0}" "{1}" config'
  42. # gpg-weechat: '"$HOME/.dotfiles/bin/gpg-decrypt" "{0}" "{1}" sec.conf'
  43.  
  44. trans_write:
  45. gpg: '"$HOME/.dotfiles/bin/gpg-encrypt" "{0}" "{1}"'
  46. gpg-single: '"{{@@ _dotrepo @@}}/bin/gpg-encrypt" "{0}" "{1}" "{2}"'
  47. # gpg-ssh: '"$HOME/.dotfiles/bin/gpg-encrypt" "{0}" "{1}" config'
  48. # gpg-weechat: '"$HOME/.dotfiles/bin/gpg-encrypt" "{0}" "{1}" sec.conf'
  49.  
  50. ```
  51.  
  52. ```bash
  53. # bin/gpg-encrypt
  54. #!/usr/bin/env bash
  55. # vim:fdm=marker:foldlevel=0:sw=2:ts=2:sts=2
  56.  
  57. set -euo pipefail
  58. IFS=$'\n\t'
  59.  
  60. declare -a gpg_cmd
  61. if command -v gpg2 &>/dev/null; then
  62. gpg_cmd=( gpg2 )
  63. else
  64. gpg_cmd=( gpg )
  65. fi
  66.  
  67. gpg_cmd=(
  68. ${gpg_cmd[@]}
  69. --no-armor
  70. -q
  71. --for-your-eyes-only
  72. --no-tty
  73. --batch
  74. --yes
  75. )
  76.  
  77. set +u
  78. if [[ -n $GPGKEY ]]; then
  79. gpg_cmd=(
  80. ${gpg_cmd[@]}
  81. --recipient
  82. "$GPGKEY"
  83. )
  84. elif ! grep '^default-recipient' "${GNUPGHOME:-$HOME/.gnupg}/gpg.conf" &>/dev/null; then
  85. echo 'Export $GPGKEY firstly!'
  86. exit 1
  87. fi
  88. if [[ -n "$SSH_TTY" ]]; then
  89. if [[ -S "$(gpgconf --list-dir agent-socket)" ]]; then
  90. gpg_cmd=(
  91. ${gpg_cmd[@]}
  92. --use-agent
  93. )
  94. fi
  95. fi
  96. set -u
  97.  
  98. if [[ $# -lt 2 ]]; then
  99. echo "Not enough arguments"
  100. exit 1
  101. elif [[ $# -eq 2 ]]; then
  102. shopt -s nullglob
  103. if [[ -d "$1" ]]; then
  104. mkdir -p "$2" 2>/dev/null
  105. for i in "$1"/*; do
  106. ${gpg_cmd[@]} -r $GPGKEY -o "$2/${i##*/}" -e "$i"
  107. done
  108. elif [[ -f "$1" ]]; then
  109. ${gpg_cmd[@]} -r $GPGKEY -o "$2" -e "$1"
  110. fi
  111. else
  112. command rm -rf "$2" 2>/dev/null
  113. command cp -Rf -- "$1" "$2"
  114. for i in "${@:3}"; do
  115. ${gpg_cmd[@]} -r $GPGKEY -o "$2/$i" -e "$1/$i"
  116. done
  117. fi
  118. ```
  119.  
  120.  
  121. ```bash
  122. # bin/gpg-decrypt
  123. #!/usr/bin/env bash
  124. # vim:fdm=marker:foldlevel=0:sw=2:ts=2:sts=2
  125.  
  126. set -euo pipefail
  127. IFS=$'\n\t'
  128.  
  129. declare -a gpg_cmd
  130. if command -v gpg2 &>/dev/null; then
  131. gpg_cmd=( gpg2 )
  132. else
  133. gpg_cmd=( gpg )
  134. fi
  135.  
  136. gpg_cmd=(
  137. ${gpg_cmd[@]}
  138. -q
  139. --for-your-eyes-only
  140. --no-tty
  141. --batch
  142. --yes
  143. )
  144.  
  145. set +u
  146. # recipient is added into the encryption already
  147. if [[ -n "$SSH_TTY" ]]; then
  148. if [[ -S "$(gpgconf --list-dir agent-socket)" ]]; then
  149. gpg_cmd=(
  150. ${gpg_cmd[@]}
  151. --use-agent
  152. )
  153. fi
  154. fi
  155. set -u
  156.  
  157. if [[ $# -lt 2 ]]; then
  158. echo "Not enough arguments"
  159. exit 1
  160. elif [[ $# -eq 2 ]]; then
  161. shopt -s nullglob
  162. if [[ -d "$1" ]]; then
  163. mkdir -p "$2" 2>/dev/null
  164. for i in "$1"/*; do
  165. ${gpg_cmd[@]} -o "${2}/${i##*/}" -d "$i"
  166. done
  167. elif [[ -f "$1" ]]; then
  168. ${gpg_cmd[@]} -o "$2" -d "$1"
  169. fi
  170. else
  171. command rm -rf "$2" 2>/dev/null
  172. command cp -Rf -- "$1" "$2"
  173. for i in "${@:3}"; do
  174. ${gpg_cmd[@]} -o "$2/$i" -d "$1/$i"
  175. done
  176. fi
  177. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement