From e05def62569358ff93691b03177abbaa9442bc53 Mon Sep 17 00:00:00 2001 From: toufic ar Date: Fri, 15 May 2026 18:18:58 +0300 Subject: repo branch support, a little webUI polishing --- msci | 21 ++++++++++++++++++--- web/templates/base.html | 14 ++++---------- web/templates/home.html | 17 +++++++++++++++++ web/templates/project.html | 27 +++++++++++++++++++++------ web/templates/run.html | 9 ++++++--- 5 files changed, 66 insertions(+), 22 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 diff --git a/web/templates/base.html b/web/templates/base.html index 81d6a59..03015ff 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -17,10 +17,6 @@ margin: 0; padding: 0; } - html, - body { - height: 100%; - } :root { --primary: #de3163; --secondary: #722f37; @@ -62,13 +58,11 @@ {% block extrastyle %}{% endblock %} -
-
-

makeshiftci{% block path %}{% endblock %}

- {% block headingcontent %}{% endblock %} -
- {% block content %}{% endblock %} +
+

makeshiftci{% block path %}{% endblock %}

+ {% block headingcontent %}{% endblock %}
+
{% block content %}{% endblock %}
diff --git a/web/templates/home.html b/web/templates/home.html index 20ef75a..733f9ef 100644 --- a/web/templates/home.html +++ b/web/templates/home.html @@ -26,9 +26,16 @@ text-decoration: underline; font-style: italic; } + .branchlink a { + color: var(--orange); + text-decoration: none; + font-weight: bolder; + font-style: italic; + } .cronlink a { color: var(--orange); text-decoration: none; + text-decoration: underline; font-weight: bolder; } } @@ -50,6 +57,16 @@ >{{ project[1]['url'] }} + + > + {% endif %} + {% endblock %} {% block content %}
@@ -104,7 +117,9 @@ block path %}/{{ project_path }}{% endblock %} >#{{ run.number }}{{ run.date }} + {% if not run.date %} no date {% else %} {{ run.date }} {% endif %} +

- document.getElementById('stdout').textContent = {{ n|tojson }}; - var s = document.currentScript; - s.parentNode.removeChild(s); + if (document.getElementById('stdout').textContent !== {{ n|tojson }}) { + document.getElementById('stdout').textContent = {{ n|tojson }}; + window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: "smooth" }); + } + var s = document.currentScript; + s.parentNode.removeChild(s); {% endfor %} {% endblock %} -- cgit v1.2.3