#!/bin/bash # @author Marcello Stanisci # @brief Creates the directories hierarchy under $HOME/shared-data/. # Note: shared-data/ must already exist and give execute # permission to the group (test|demo). Also note that any # program that creates files must set perms by its own! set -eu if test -z $TALER_ENV_NAME; then echo Please run 'source ~/activate' first. exit 1 fi if ! test -e $HOME/.config/taler.conf; then echo "Please generate config first (taler-deployment-config-generate)." exit 1 fi TALER_DATA=$(taler-config -s paths -o taler_deployment_data -f) # Check if shared-data/ is clean. if test -e $TALER_DATA/hier.lock; then echo "$TALER_DATA locked, exiting" exit 0 fi # Check if it's writeable. if ! test -w $TALER_DATA; then echo "Can't write under $TALER_DATA, please adjust permissions" exit 0 fi declare -A TALER_DIRS=( [MERCHANT_WIRE]=$(dirname $(taler-config -s account-merchant -o wire_response -f)) [MERCHANT]=$(dirname $(taler-config -s instance-default -o keyfile -f)) [EXCHANGE_WIREFEES]=$(taler-config -s exchangedb -o wirefee_base_dir -f) [EXCHANGE_AUDITOR_REQUEST]=$(taler-config -s exchangedb -o auditor_inputs -f) [EXCHANGE_WIRE]=$(basename $(taler-config -s account-1 -o wire_response -f)) [EXCHANGE_OFFLINE_KEYS]=$(dirname $(taler-config -s exchange -o master_priv_file -f)) [EXCHANGE_LIVE_KEYS]=$(taler-config -s -o keydir -f) [EXCHANGE_AUDITORS]=$(taler-config -s exchangedb -o auditor_base_dir -f) [AUDITOR_REPORTS]=$(taler-config -s auditor -o reports -f) [AUDITOR_OFFLINE_KEYS]=$(dirname $(taler-config -s auditor -o auditor_priv_file -f)) ) for dir in ${TALER_DIRS[@]}; do ## # Ineffective for exchange's and auditor's privs paths # as those were created when the configuration was generated # (recall: this script is very dependent on taler.conf!) mkdir -p $dir done # All dirs will give only the group RWX perms. touch $TALER_DATA/hier.lock