#!/usr/bin/env bash # Build multiple projects based on a provided list current_date=$(date -I) src_dir=$HOME/kde/src dirs='' # Function to display script usage UPDATE usage () { echo "Usage: $0" echo "./$(basename "$0") [-h] [-d]" echo "" echo " -h, --help Display this help message" echo " -d The list of directories to build" echo "" echo "This script takes a quoted list of directories. ex:" echo "" echo ' build_multiple "breeze libplasma plasma-desktop"' echo "" echo 'In each directory, this will pull the branch and build the project' } # list of arguments expected in the input optstring=":d:h" while getopts ${optstring} option; do case "${option}" in d) dirs="${OPTARG}" ;; h) usage exit 0 ;; *) usage exit 1 ;; ?) echo "Invalid option: -${OPTARG}." >&2 echo usage >&2 exit 1 ;; esac done update_and_build_dir () { cd ${src_dir} echo `pwd` cd ${dir} echo `pwd` git fetch || { echo 'git fetch failed' ; exit 1; } git pull || { echo 'git pull failed' ; exit 1; } kde-builder $(basename "$PWD") --no-src --resume-from $(basename "$PWD") || { echo "kde-builder failed for $PWD" ; exit 1; } } if [[ ( $@ == "--help") || $@ == "-h" ]]; then usage exit 0 fi printf "Building requested projects\n%s ${dirs}\n" # Split the string of directories into an array read -r -a splitArray <<<"$dirs" for dir in "${splitArray[@]}"; do echo "dir passing to sub is ${dir}" update_and_build_dir "${dir}" done echo "Builds done"