github.com/ungtb10d/git-lfs@v2.5.2+incompatible/docker/gpg-agent_preload.bsh (about) 1 #!/usr/bin/env bash 2 3 #Based off of https://github.com/andyneff/gpg_agent/blob/master/preload.bsh 4 5 set -eu 6 7 CUR_DIR=$(dirname ${BASH_SOURCE[0]}) 8 IMAGE_NAME=andyneff/gpg_agent 9 CONTAINER_NAME=git-lfs-gpg 10 11 : ${SUDO=`if ( [ ! -w /var/run/docker.sock ] && id -nG | grep -qwv docker && [ "${DOCKER_HOST:+dh}" != "dh" ] ) && which sudo > /dev/null 2>&1; then echo sudo; fi`} 12 13 if [[ $# > 0 ]] && [ "$1" == "-r" ]; then 14 ${CUR_DIR}/gpg-agent_stop.bsh 15 shift 16 fi 17 18 ${CUR_DIR}/gpg-agent_start.bsh 19 20 for (( x=0; x<10; x++ )); do 21 if $SUDO docker exec -it ${CONTAINER_NAME} bash -c \ 22 "gpg-connect-agent --homedir="'${GNUPGHOME}'" /bye"; then 23 break 24 else 25 sleep 1 26 fi 27 done 28 29 if ls ${CUR_DIR}/*.key >/dev/null 2>&1; then 30 for file in ${CUR_DIR}/*.key; do 31 if [ -s $file ]; then 32 $SUDO docker cp $file ${CONTAINER_NAME}:/tmp/ 33 fi 34 done 35 fi 36 37 $SUDO docker exec -it ${CONTAINER_NAME} script /dev/null -q -c ' \ 38 for key in $(ls /tmp/*.key); do \ 39 if [ -s $key ]; then \ 40 gpg --import $key; \ 41 gpg2 -o /dev/null -s /dev/null; \ 42 rm -f /tmp/gpg-agent/*.gpg; \ 43 fi \ 44 done'