#!/usr/bin/env bash # Copyright (C) 2017 Andrew Robbins # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . dependencies_print() { local distro="$1" shift if [[ "$distro" == 'parabola' ]]; then printf '\n%s\n' 'Enable the multilib repository in /etc/pacman.conf' printf '\n%s\n' 'Then, run the following command as root:' printf '\n%s%s\n' 'pacman -S --needed ' "$*" else printf '\n%s\n' 'You will need to run the following command as root:' printf '\n%s%s\n' 'apt-get -y install ' "$*" fi } dependencies_host_supported() { local distro="$1" local arch="$2" dependencies_distro_supported "$distro" || return dependencies_arch_supported "$distro" "$arch" || return } dependencies_arch_supported() { local distro="$1" local arch="$2" local tool_path="$(tool_path "$tool")" local distro_dir="$tool_path/$CONFIGS/$distro" if ! [[ -d "$distro_dir/$arch" ]]; then printf '\n%s\n' "Architecture \"$arch\" is not supported" 1>&2 return 1 fi } dependencies_distro_supported() { local distro="$1" local tool_path="$(tool_path "$tool")" local targets_path="$tool_path/$CONFIGS/$TARGETS" local -a targets_list mapfile -t targets_list < "$targets_path" # Necessary to properly format the string for extglob use below IFS='|' eval 'local distro_list="${targets_list[*]}"' if [[ "$distro" != @($distro_list) ]]; then printf '\n%s' "Argument \"$distro\" is not supported. " 1>&2 printf '%s\n' 'Check spelling?' 1>&2 usage return 1 fi }