blob: eb109cd559b9a30253a557c373c0494a7613ab90 [file] [log] [blame]
Alexandre Lision3d4143a2015-06-10 14:27:49 -04001#!/bin/bash
2
3# Take the package to add as argument ./sparkle-xml-updater.sh ring.dmg
4
Alexandre Lision71b41512016-05-02 13:53:44 -04005REPO_FOLDER=$1
6SPARKLE_FILE=$2
7REPO_URL=$3
8PACKAGE=$4
9DSA_KEY=$5
Alexandre Lision3d4143a2015-06-10 14:27:49 -040010
11if [ ! -f ${PACKAGE} -o ! -f ${DSA_KEY} ]; then
12 echo "Can't find package or dsa key, aborting..."
13 exit 1
14fi
15
16if [ -f ${REPO_FOLDER}/${SPARKLE_FILE} ]; then
Alexandre Lision71b41512016-05-02 13:53:44 -040017 ITEMS=$(sed -n "/<item>/,/<\/item>/p" ${REPO_FOLDER}/${SPARKLE_FILE})
18fi
19
20if [[ `uname` == 'Darwin' ]]; then
21 PACKAGE_SIZE=`stat -f%z ${PACKAGE}`
22 DATE_RFC2822=`date "+%a, %d %b %Y %T %z"`
23else
24 PACKAGE_SIZE=`stat -c %s ${PACKAGE}`
25 DATE_RFC2822=`date -R`
Alexandre Lision3d4143a2015-06-10 14:27:49 -040026fi
27
28cat << EOFILE > ${REPO_FOLDER}/${SPARKLE_FILE}
29<?xml version="1.0" encoding="utf-8"?>
30<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
31 <channel>
32 <title>Ring - nightly</title>
33 <link>${REPO_URL}/${SPARKLE_FILE}</link>
34 <description>Most recent changes with links to updates.</description>
35 <language>en</language>
36 <item>
37 <title>Ring nightly $(date "+%Y/%m/%d %H:%M")</title>
Alexandre Lision71b41512016-05-02 13:53:44 -040038 <pubDate>$DATE_RFC2822</pubDate>
kkostiukc1445892021-04-16 11:15:23 -040039 <enclosure url="${REPO_URL}/$(basename ${PACKAGE})" sparkle:version="$(date +%Y%m%d%H)" sparkle:shortVersionString="nightly-$(date "+%Y%m%d")" length="$PACKAGE_SIZE" type="application/octet-stream" sparkle:dsaSignature="$(./sign_update.sh ${PACKAGE} ${DSA_KEY})" />
kkostiuk723d95d2021-04-08 21:35:26 -040040 <sparkle:minimumSystemVersion>10.13</sparkle:minimumSystemVersion>
Alexandre Lision3d4143a2015-06-10 14:27:49 -040041 </item>
42$(echo -e "${ITEMS}")
43 </channel>
44</rss>
45EOFILE
46