1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/bash
- #
- # configure - Configure a product
- #
- # Usage: configure --parts "app, web" --password "password" --passfile path ...
- #
- # Manages git-crypt files, submodules and parts. Defaults to --passfile /etc/farm/gpg.key
- #
- GPG_PASSFILE=/etc/farm/gpg.key
- PARTS="app, ui, web"
- while [[ $# -gt 0 ]] ; do
- arg="$1"
- case ${arg} in
- --passfile)
- GPG_PASSFILE="${2}"
- shift ; shift
- ;;
- --password)
- GPG_PASSWORD="${2}"
- shift ; shift
- ;;
- --parts)
- PARTS="${2}"
- shift ; shift
- ;;
- *)
- break
- ;;
- esac
- done
- PARTS=$(echo ${PARTS} | tr ',' ' ')
- #
- # Decrypt secrets
- #
- if [ -x ".git-crypt" -a ! -f .decrypted ] ; then
- echo "Decrypt secrets"
- if [ -z "${GPG_PASSWORD}" -a -f ${GPG_PASSFILE} ] ; then
- GPG_PASSWORD=$(cat ${GPG_PASSFILE})
- fi
- if [ "${GPG_PASSWORD}" != "" ] ; then
- gpg --pinentry-mode loopback --no-tty --passphrase "${GPG_PASSWORD}" --yes \
- --output .git-crypt/keys/default/0/decrypted.key \
- --decrypt .git-crypt/keys/default/0/*.gpg
- git-crypt unlock .git-crypt/keys/default/0/decrypted.key
- else
- git-crypt unlock
- fi
- if [ $? != 0 ] ; then
- echo "Git unlock failed"
- exit 1
- fi
- >.decrypted
- fi
- git submodule update --init --recursive
- for PART in ${PARTS}
- do
- [ ! -d ${PART} ] && continue
- cd ./${PART}
- if [ -f configure ] ; then
- echo -e "\nConfigure ${PART}"
- PART=${PART} ./configure $*
- fi
- [ $? != 0 ] && exit 2
- cd ..
- done
|