#!/bin/bash

if [ $# -ne 1 ]; then
  >&2 echo "Verwendung: testeAbhaengigkeiten paket"
  exit 1
fi

paket="$1"
me="$(readlink -f "$0")"
cd "$(dirname "${me}")"

if [ ! -d "${paket}" ]; then
  >&2 printf 'Paket "%s" existiert nicht.\n' "${paket}"
  exit 1
fi

if [ "${paket#perl-}" != "${paket}" ]; then

  . perlFunktionen

  ladePkgbuild "${paket}" || exit $[$?-1]

  versteheMetaYml "${paket}" || exit $[$?-1]

elif [ "${paket#python-}" != "${paket}" ]; then

  if ( . "$1/PKGBUILD"; printf '%s\n' "${pkgname[@]}"; ) \
    | grep -qF 'python2-'; then
    . pythonFunktionen python2
  else
    . pythonFunktionen python
  fi

  ladePkgbuild "${paket}" || exit $[$?-1]

  versteheRequirements "${paket}" || exit $[$?-1]

else

  # not python-* or perl-* => nothing to do / yet to be implemented
  exit 0

fi

err=false

for wasAusgeben in "${!metaRegexe[@]}"; do
  probleme="$(
    (
      echo "${pkgBuild["${wasAusgeben}"]}"
      echo "${metaYml["${wasAusgeben}"]}"
    ) | \
      sort | \
      uniq -u \
  )"
  if [ -n "${probleme}" ]; then
    >&2 echo "${wasAusgeben} in ${paket}/PKGBUILD unterscheidet sich:"
    >&2 echo '-------------------------------------'
    >&2 echo "${metaYml["${wasAusgeben}"]}"
    >&2 echo '^^^ META.yml ^^^ vs. vvv PKGBUILD vvv'
    >&2 echo "${pkgBuild["${wasAusgeben}"]}"
    >&2 echo "====================================="
    >&2 echo "${probleme}"
    >&2 echo "====================================="
    err=true
  fi
done

if ${err}; then
  ersatz="$(
    for wasAusgeben in "${!metaRegexe[@]}"; do
      if [ -n "${metaYml["${wasAusgeben}"]}" ]; then
        echo "${wasAusgeben}=("
        echo "${metaYml["${wasAusgeben}"]})" | \
          sed '
            s|^\s*||
            s|\s*$||
            s|^\([^"].*[^)]\)\()\?\)$|'"'"'\1'"'"'\2|
            s|^["'"'"']|  \0|
          '
      fi
    done | \
      sed ':begin;
        $!N;
        s@^\(.*\)\n\(.*\)$@\1\\n\2@;
        tbegin;
        P;
        D
      '
  )"

  >&2 echo 'neu könnte das etwa so aussehen:'
  >&2 echo '-------------------------------------'
  >&2 echo -e "${ersatz}"
  >&2 echo '-------------------------------------'
  read -p 'Ich würde das jetzt mal vollautomatisch verändern. Einwände? ' was
  if [ -n "${was}" ]; then
    exit 1
  fi
  sed '
    :begin;
      $!N;
      s@^\(\('"$(
        printf '%s\|' "${!metaRegexe[@]}" | \
          sed 's/\\|$//'
      )"'\)=[^)]*\)\n\(.*\)$@\1 \3@;
    tbegin;
    P;
    D
  ' -i PKGBUILD
  sed '/^\('"$(
    printf '%s\|' "${!metaRegexe[@]}" | \
      sed '
        s/\(^\|\\|\)_\?depends\($\|\\|\)/\1\2/
        s/\(\\|\)\{2\}/\1/g
        s/\\|$//
        s/^\\|//
      '
  )"'\)=/d' -i PKGBUILD
  sed 's|^'"$(
    printf '%s\n' "${!metaRegexe[@]}" | \
      grep -xm1 '_\?depends' | \
      tr -d '\n'
  )"'=.*$|'"${ersatz}"'|' -i PKGBUILD
  "${me}" "$@"
fi