#!/bin/sh #list="build deploy latest release test" #for elem in ${list} #do # echo "Build ${elem}" # j2 -f json \ # .gitlab/templates/${elem}.yml.j2 \ # .gitlab/templates/.container_list.json \ # -o .gitlab/ci/${elem}.yml #done exec_with_dry_run () { if [[ ${1} -eq ${FLAGS_TRUE} ]]; then echo "# ${2}" else eval "${2}" 2> /tmp/error || \ { echo -e "failed with following error"; output=$(cat /tmp/error | sed -e "s/^/ error -> /g"); echo -e "${output}"; return 1; } fi return 0 } main () { [[ -f ./libs/shflags ]] && . ./libs/shflags || eval "$(curl --silent https://gitlab.g3e.fr/h6n/tools/-/raw/main/libs/shflags)" DEFINE_boolean 'dryrun' false 'Enable dry-run mode' 'd' DEFINE_string 'output_path' '' 'Release documentation path' 'o' DEFINE_string 'template_path' '' 'Path of artifact list' 't' DEFINE_string 'params_path' '' 'Path of artifact list' 'p' FLAGS "$@" || exit $? eval set -- "${FLAGS_ARGV}" exec_with_dry_run ${FLAGS_dryrun} "pip install j2cli" > /dev/null ls -a ${FLAGS_template_path} | while read TEMPLATE do file=$(echo ${TEMPLATE} | grep -Ev '^[\.]*$') [[ ${file} != "" ]] && \ { basename=$(echo ${file%.*}) exec_with_dry_run ${FLAGS_dryrun} "j2 -f json ${FLAGS_template_path}/${file} ${FLAGS_params_path} -o ${FLAGS_output_path}/${basename}" } done } [[ "${BASH_SOURCE[0]}" == "${0}" ]] && \ { main "$@" && exit 0 || exit 1 } [[ "${BASH_SOURCE[0]}" == "" ]] && \ { main "$@" && exit 0 || exit 1 }