#
## FSF/UNESCO directory module
#

function quill_fsf_get_deps(){
  local data
  local file
  file="${2}"
  data="${1}"
  cat $file | \
  sed -n '/h5>Requirements</,/<\/ul>/ p' ${file} | \
      grep "li" | \
      grep "$data" | \
      sed -e "s:<li>\(.*\)\ ($data).*</li>:\1:g" | \
      tr "\n" " " | tr "A-Z" "a-z"
}
##
## @Globals SPELL_NAME SPELL_LICENSE SPELL_URL
## @Globals QUILL_TMP_DIR
function quill_fsf_core(){
  local project
  local fsf_project_file

  # so it is set even if we end prematurely, useful when adding spells
  # gets properly overwritten later on
  SPELL_NAME="$1"
  project="$2"
  fsf_project_file=${QUILL_TMP_DIR}/${project}.fsf
  if [[ ! -e ${fsf_project_file} ]]; then
    message "Attempting to retrieve project page..."
    wget -q -O $fsf_project_file \
         http://directory.fsf.org/project/$project/ || \
         (error_msg "Error: unable to fetch project page" && \
         return 1)
  fi
  SPELL_SRC_URL="$(sed -n '/<h4>Versions/,/<li>Licenses:/ p' $fsf_project_file | grep "Source Archive:" | sed -e "s:.*<a href=\"\(.*\)\".*:\1:g" -e "s:\".*::g")"

  SPELL_SHORT_DESCRIPTION="$(sed -n '/<div id="description">/,/<p><em>Last updated/ p' $fsf_project_file | sed -n '/<\/h3>/,/<p><em>/ p' | sed -e "s:</h3>::g" -e "s:<p>::g" -e "s:</p>::g" -e "s:<em>.*::g" | head -n2 | tail -n1 | sed -e "s:^ *::" -e "s: *$::")"

  SPELL_DEPENDENCIES="$(echo $(quill_fsf_get_deps "Source Language" "$fsf_project_file") $(quill_fsf_get_deps "Build Prerequisite" "$fsf_project_file") $(quill_fsf_get_deps "Use Requirement" "$fsf_project_file") | sed -e "s:^ *::" -e "s: *$::" )"

  SPELL_OPTIONAL_DEPENDENCIES="$(echo $(quill_fsf_get_deps "Weak prerequisites" "$fsf_project_file") | sed -e "s:^ *::" -e "s: *$::" )"

  SPELL_LICENSE="$(sed -n '/<li>Licenses:/,/<\/li>/ p' $fsf_project_file | tr "\n" " " | sed -e "s:.*<a href.*>\(.*\)</a>.*:\1:g")"

  SPELL_URL="$(grep -E "<p>.*Homepage" $fsf_project_file | sed -e "s:.*<a href=\"\(.*\)\">Homepage.*:\1:g")"

  # Description

  sed -n '/<div id="description">/,/<p><em>Last updated/ p' $fsf_project_file | \
  sed -n '/<\/h3>/,/<p><em>/ p' | \
  sed -e "s:</h3>::g" -e "s:<p>::g" -e "s:</p>::g" -e "s:<em>.*::g" |
  sed -e "s:^ *::" -e "s: *$::" > \
  ${QUILL_TMP_DIR}/${SPELL_NAME}

}
