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'