#!/bin/bash set -ue . functions.sh cd "$(cd "${0%/*}" && pwd -P)" IFS=' ' read -ra versions <<<"$(get_versions .)" IFS=' ' read -ra update_versions <<<"$(get_versions . "$@")" if [ ${#versions[@]} -eq 0 ]; then fatal "No valid versions found!" fi # Global variables # Get architecure and use this as target architecture for docker image # See details in function.sh # TODO: Should be able to specify target architecture manually arch=$(get_arch) yarnVersion="$(curl -sSL --compressed https://yarnpkg.com/latest-version)" function in_versions_to_update() { local version=$1 for version_to_update in "${update_versions[@]}"; do if [ "${version_to_update}" = "${version}" ]; then echo 0 return fi done echo 1 } function update_node_version() { local baseuri=${1} shift local version=${1} shift local template=${1} shift local dockerfile=${1} shift local variant="" if [ $# -eq 1 ]; then variant=${1} shift fi fullVersion="$(curl -sSL --compressed "${baseuri}" | grep '>.travis.yml } echo '#### DO NOT MODIFY. THIS FILE IS AUTOGENERATED #### ' | cat - travis.yml.template >.travis.yml for version in "${versions[@]}"; do parentpath=$(dirname "${version}") versionnum=$(basename "${version}") baseuri=$(get_config "${parentpath}" "baseuri") update=$(in_versions_to_update "${version}") [ "${update}" -eq 0 ] && info "Updating version ${version}..." # Get supported variants according the target architecture # See details in function.sh IFS=' ' read -ra variants <<<"$(get_variants "${parentpath}")" if [ -f "${version}/Dockerfile" ]; then add_stage "${baseuri}" "${version}" "default" if [ "${update}" -eq 0 ]; then update_node_version "${baseuri}" "${versionnum}" "${parentpath}/Dockerfile.template" "${version}/Dockerfile" & fi fi for variant in "${variants[@]}"; do # Skip non-docker directories [ -f "${version}/${variant}/Dockerfile" ] || continue add_stage "${baseuri}" "${version}" "${variant}" if [ "${update}" -eq 0 ]; then update_node_version "${baseuri}" "${versionnum}" "${parentpath}/Dockerfile-${variant}.template" "${version}/${variant}/Dockerfile" "${variant}" & fi done done wait info "Done!"