#!/bin/bash declare buildblock=$1 declare variants=$2 declare -r OS=$(uname -s) # File format example # 1.10.2 Linux,Darwin unstable gcc/4.8.5 declare -a toks=() declare version='' declare oss='' declare release='' declare -a dependencies=() while read -a toks; do # skip comment and empty line (( ${#toks[@]} == 0 )) && continue [[ "${toks[0]:0:1}" == "#" ]] && continue version=${toks[0]} oss=${toks[1]} release=${toks[2]} dependencies=( ${toks[@]:3} ) [[ "${oss}" =~ "${OS}" ]] || continue "${buildblock}" "${version}" --release=${release} "${dependencies[@]/#/--with=}" done < "${variants}"