summaryrefslogtreecommitdiff
path: root/build-repo.sh
diff options
context:
space:
mode:
Diffstat (limited to 'build-repo.sh')
-rwxr-xr-xbuild-repo.sh95
1 files changed, 95 insertions, 0 deletions
diff --git a/build-repo.sh b/build-repo.sh
new file mode 100755
index 0000000..038e4f6
--- /dev/null
+++ b/build-repo.sh
@@ -0,0 +1,95 @@
+#!/bin/bash
+
+XIBUILD=./xibuild
+
+fetch-pkg-builds () {
+ git clone https://git.davidovski.xyz/xilinux/xipkgs
+
+ mkdir dist
+
+ for REPO in $(du -h xipkgs/repo/* | awk '{print $2}'); do
+ REPO_NAME=$(echo $REPO | cut -d"/" -f2-)
+
+ REPO_INDEX=dist/$REPO_NAME/index.html
+ REPO_LIST=dist/$REPO_NAME/packages.txt
+
+ echo "<html>
+ <head>
+ <title>packages for $REPO_NAME</title>
+ <link rel='stylesheet' type='text/css' href='/style.css'>
+ </head>
+ <body>
+ <h1>Packages in <a href='../'>$REPO_NAME</a></h1>
+ <table>" > $REPO_INDEX
+
+ printf "" > xibuild.report.log
+ for BUILD_FILE in $REPO/*; do
+ DEST=dist/$REPO_NAME
+
+ $XIBUILD -o $DEST $BUILD_FILE
+
+ PKG_NAME=$(basename $BUILD_FILE .xibuild)
+ DESC=$(grep $PKG_NAME xibuild.report.log | cut -d" " -f3-)
+
+ COLOR="none"
+ if grep $PKG_NAME xibuild.report.log | grep -q new; then
+ COLOR="lime"
+ fi
+ if grep $PKG_NAME xibuild.report.log | grep -q fail; then
+ if [ ! -f $DEST ]; then
+ COLOR="orange"
+ else
+ COLOR="red"
+ fi
+ fi
+ echo "
+ <tr style='background-color: $COLOR'>
+ <td>$PKG_NAME</td>
+ <td><a href='src/$PKG_NAME.xibuild'>src</a></td>
+ <td><a href='logs/$PKG_NAME.log'>log</a></td>
+ <td>$DESC</td>
+ <td><a href='$PKG_NAME.xipkg'>$PKG_NAME.xipkg</a></td>
+ <td><a href='$PKG_NAME.xipkg.info'>.info</a></td>
+</tr>
+" >> $REPO_INDEX
+ done;
+
+ rm xibuild.report.log
+
+ echo "</table>
+
+ <p>Latest builds: <b>$(date)</b></p>
+
+ <h3>Legend:</h3>
+ <ul>
+ <li style='background-color: none'>build skipped; no updates</li>
+ <li style='background-color: red'>build failed; no previous version</li>
+ <li style='background-color: orange'>build failed; previous version exists</li>
+ <li style='background-color: lime'>build passed: new update</li>
+ </ul>
+ </body>
+ </html>
+ " >> $REPO_INDEX
+
+ cd dist/$REPO_NAME
+ ls -1 *.xipkg.info > packages.txt
+ cd -
+
+ # move logs and sources
+ mv logs/* dist/$REPO_NAME/logs
+
+ mkdir -p dist/$REPO_NAME/src
+ mv $REPO/* dist/$REPO_NAME/src/
+
+ # add key for whole repo
+ cp keychain/xi.pub dist/repo/
+ done;
+
+
+ rm -rf xipkgs
+ rm -rf logs
+ rm -rf tmp
+ rm -rf xibuild.log
+}
+
+fetch-pkg-builds