aboutsummaryrefslogtreecommitdiff
path: root/msci
diff options
context:
space:
mode:
Diffstat (limited to 'msci')
-rwxr-xr-xmsci21
1 files changed, 18 insertions, 3 deletions
diff --git a/msci b/msci
index 8526f87..072d5ec 100755
--- a/msci
+++ b/msci
@@ -60,11 +60,17 @@ run_project() {
(
set -euo pipefail
ppath="$MSCI_HOME"/projects/"$1".json
+ git_params=()
repo_name="$1"
+ repo_branch=$(jq -r '.branch // empty' "$ppath")
+ if [ -n "$repo_branch" ]; then
+ git_params+=(-b "$repo_branch")
+ fi
repo_url=$(jq -r '.url' "$ppath")
repo_path="$MSCI_HOME"/tmp/"$repo_name"
+ git_params+=("$repo_url" "$repo_path")
echo "cloning repo: $repo_url" | tee -a "$2"
- ! git clone "$repo_url" "$repo_path" &>/dev/null &&
+ ! git clone "${git_params[@]}" &>/dev/null &&
echo "failed to clone repo" | tee -a "$2" && exit 1
! pushd "$repo_path" &>/dev/null &&
echo "unable to cd into cloned repo" | tee -a "$2" && exit 1
@@ -115,16 +121,19 @@ create_project() {
[[ -n ${purl//[[:space:]]/} ]] && break
echo "URL can't be empty"
done
+ read -rp ".makeshiftci repo branch (optional): " pbranch
phidden=$(confirm_in "hidden?" && echo true || echo false)
read -rp "cron (optional): " pcron
jq -n \
--arg pname "$pname" \
--arg purl "$purl" \
+ --arg pbranch "$pbranch" \
--argjson phidden "$phidden" \
--arg pcron "$pcron" \
'{
name: $pname,
url: $purl,
+ branch: (if $pbranch == "" then null else $pbranch end),
hidden: $phidden,
cron: (if $pcron == "" then null else $pcron end)
}' \
@@ -145,15 +154,19 @@ edit_project() {
echo "editing $ppath"
oldname=$(jq -r '.name' "$ppath")
oldurl=$(jq -r '.url' "$ppath")
+ oldbranch=$(jq -r '.branch // empty' "$ppath")
washidden=$(jq '.hidden' "$ppath")
keephidden=$([ "$washidden" = 'true' ] && echo "keep" || echo "make")
- oldcron=$(jq -r '.cron' "$ppath")
+ oldcron=$(jq -r '.cron // empty' "$ppath")
echo "project name: $oldname"
read -rp "new name (optional): " pname
[ -z "${pname//[[:space:]]/}" ] && pname=$oldname
echo ".makeshiftci repo URL: $oldurl"
read -rp "new URL (optional): " purl
[ -z "${purl//[[:space:]]/}" ] && purl=$oldurl
+ echo ".makeshiftci repo branch: $oldbranch"
+ read -rp "new branch (optional): " pbranch
+ [ -z "${pbranch//[[:space:]]/}" ] && pbranch=$oldbranch
echo "hidden: $washidden"
phidden=$(confirm_in "$keephidden hidden?" && echo true || echo false)
echo "cron: $oldcron"
@@ -162,13 +175,15 @@ edit_project() {
jq -n \
--arg pname "$pname" \
--arg purl "$purl" \
+ --arg pbranch "$pbranch" \
--argjson phidden "$phidden" \
--arg pcron "$pcron" \
'{
name: $pname,
url: $purl,
+ branch: (if $pbranch == "" then null else $pbranch end),
hidden: $phidden,
- cron: (if $pcron == "null" then null else $pcron end)
+ cron: (if $pcron == "" then null else $pcron end)
}' \
>"$ppath"
[ ! "$pcron" = "$oldcron" ] && write_cron