diff options
author | davidovski <david@davidovski.xyz> | 2021-10-06 20:09:17 +0100 |
---|---|---|
committer | davidovski <david@davidovski.xyz> | 2021-10-06 20:09:17 +0100 |
commit | c7680a4b80867c41ddee4b8cf4c5a3c7acc1f7e8 (patch) | |
tree | dec624741d3c8a7a34a04049976e2b9b0b6a4a08 /build-repo.sh | |
parent | 49f3f0aa5a3b61b1dcb4ce08043ec44f8823d967 (diff) |
Added syncing capabilities
Diffstat (limited to 'build-repo.sh')
-rwxr-xr-x | build-repo.sh | 151 |
1 files changed, 91 insertions, 60 deletions
diff --git a/build-repo.sh b/build-repo.sh index 038e4f6..d22fa1c 100755 --- a/build-repo.sh +++ b/build-repo.sh @@ -2,94 +2,125 @@ XIBUILD=./xibuild -fetch-pkg-builds () { +fetch () { git clone https://git.davidovski.xyz/xilinux/xipkgs mkdir dist +} +build () { 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 + + start-index $REPO_NAME $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 + + extend-index $BUILD_FILE $REPO_INDEX done; rm xibuild.report.log + conclude-index $REPO_INDEX - echo "</table> + generate-package-list + add-additional + done; +} - <p>Latest builds: <b>$(date)</b></p> +start-index () { + echo "<html> + <head> + <title>packages for $1</title> + <link rel='stylesheet' type='text/css' href='/style.css'> + </head> + <body> + <h1>Packages in <a href='../'>$1</a></h1> + <table>" > $2 +} - <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 +extend-index () { + PKG_NAME=$(basename $1 .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> + " >> $2 +} - cd dist/$REPO_NAME - ls -1 *.xipkg.info > packages.txt - cd - +conclude-index () { + 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> + " >> $1 +} - # 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; +generate-package-list () { + cd dist/$REPO_NAME + ls -1 *.xipkg.info > packages.txt + cd - +} + +add-additional () { + # 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/ +} +clean () { rm -rf xipkgs rm -rf logs rm -rf tmp rm -rf xibuild.log } -fetch-pkg-builds +sync () { + [[ $# = 0 ]] || rsync -vLta --no-perms --no-owner --no-group --delete -z -e ssh ./dist/ $1 +} + + +# update the repository + +fetch +build +clean +sync $@ |