#!/usr/bin/env bash

# Load configuration
. "${CUSTOM_INSTALL}/config"
. ${CUSTOM_INSTALL}/setup-tools

echo "Properties files ..."

# Copy properties files
echo "  - copying source files"
mkdir -p "${LANG_DIR}"
DATAVERSE_DIR=$(find ${DOMAIN_DIR} -maxdepth 2 -name "dataverse*")

# ## Copy required properties files
cp "${DATAVERSE_DIR}/WEB-INF/classes/ValidationMessages.properties" "${LANG_DIR}/ValidationMessages_en.properties"

for f in "${DATAVERSE_DIR}/WEB-INF/classes/propertyFiles"/*.properties
do
  PROP_FILE=$(basename -s '.properties' $f)
  PROP_FILE="${PROP_FILE#*-}"
  echo "    - ${PROP_FILE} block"
  PROP_FILE="${LANG_DIR}/${PROP_FILE}_en.properties"
  rm -f "$PROP_FILE"
  cp "$f" "$PROP_FILE"  
done

# Apply metatadata customization
echo '  - generate metadata properties'
for f in "$(data_dir metadatablocks)"/*.tsv "$(custom_dir metadatablocks)"/*.tsv
do
  PROP_FILE=$(basename -s '.tsv' $f)
  PROP_FILE="${PROP_FILE#*-}"
  echo "    - ${PROP_FILE} block"
  PROP_FILE="${LANG_DIR}/${PROP_FILE}_en.properties"
  rm -f "$PROP_FILE"
  ${CUSTOM_INSTALL}/extract_properties.rb "$f" "${PROP_FILE}"
done

# Customize text
echo "  - customize text entries"
for f in $(data_dir properties)/*.json $(custom_dir properties)/*.json
do
  title=$(jq -r '.title' $f)
  echo "    - $title"
  jq -r '.data[]|[.name, .value]|@tsv' $f | while IFS=$'\t' read -r name value
  do
    PROP_FILE="${LANG_DIR}/${name%#*}"
    name="${name#*#}"
    if [ "$(grep -qsE "^${name}=" "$PROP_FILE" 2&>1 > /dev/null; echo $?)" = "0" ]
    then
      sed -i -e "s&^${name}=.*&${name}=$(echo "$value" | sed -e 's/&/\\&/')&" "$PROP_FILE"
    else
      echo "${name}=${value}" >> "$PROP_FILE"
    fi
  done
done

echo
