#!/usr/bin/env bash

requirements_arch_lib_installed_all_missing()
{
  pacman -T "$@" || true
}

requirements_arch_libs_install()
{
  __rvm_try_sudo pacman -Sy --needed --noconfirm "$@" || return $?
}

requirements_arch_update_system()
{
  # Has to be ran separately so new version can be used for installing missing libs
  requirements_arch_libs_install pacman || return $?
}

requirements_arch_define()
{
  case "$1" in
    (rvm)
      requirements_check bash curl patch
      ;;
    (jruby*)
      if
        is_head_or_disable_binary "$1"
      then
        requirements_check_fallback jdk7-openjdk jdk jdk6
        requirements_check curl git
        if is_jruby_post17 "$1"
        then __rvm_which mvn >/dev/null || requirements_check maven
        else __rvm_which ant >/dev/null || requirements_check apache-ant
        fi
      else
        requirements_check_fallback jre7-openjdk jre jre6
        requirements_check curl
      fi
      ;;
    (ir*)
      requirements_check mono
      ;;
    (opal)
      requirements_check nodejs
      ;;
    (*-head)
      requirements_check gcc patch curl zlib readline autoconf automake diffutils make libtool bison git
      ;;
    (*)
      requirements_check gcc patch curl zlib readline autoconf automake diffutils make libtool bison
      ;;
  esac
}

requirements_manjaro_define()
{
  __lib_type=arch
  requirements_arch_define "$@" || return $?
}

requirements_arch_lib_available()
{
  pacman -Ssq "^${1}$" >/dev/null 2>&1 || return $?
}

requirements_arch_lib_installed() {
  pacman -Qq "$1" >/dev/null 2>&1 || return $?
}
