From 4b6f49153d48adc464be386898c6f9b287fe8632 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Mon, 22 Sep 2014 09:41:08 -0600 Subject: [PATCH] Add magic support for direct operation on files Things that work now: (in any combinations) - `./build.sh debian` - `./build.sh debian:sid` - `./build.sh ../library/debian` - `./build.sh ../library/debian:sid` --- build.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/build.sh b/build.sh index 0587a09..95c2fc9 100755 --- a/build.sh +++ b/build.sh @@ -106,18 +106,29 @@ mkdir -p "$latestLogDir" # gather all the `repo:tag` combos to build for repoTag in "${repos[@]}"; do - echo "$repoTag" >> "$logDir/repos.txt" + repo="${repoTag%%:*}" + tag="${repoTag#*:}" + [ "$repo" != "$tag" ] || tag= + + if [ -f "$repo" ]; then + repoFile="$repo" + repo="$(basename "$repoFile")" + repoTag="${repo}${tag:+:$tag}" + else + repoFile="$library/$repo" + fi + + repoFile="$(readlink -f "$repoFile")" + echo "$repoTag ($repoFile)" >> "$logDir/repos.txt" if [ "${repoGitRepo[$repoTag]}" ]; then queue+=( "$repoTag" ) continue fi - repo="${repoTag%:*}" - # parse the repo library file IFS=$'\n' - repoTagLines=( $(cat "$library/$repo" | grep -vE '^#|^\s*$') ) + repoTagLines=( $(cat "$repoFile" | grep -vE '^#|^\s*$') ) unset IFS tags=()