aboutsummaryrefslogtreecommitdiffstats
path: root/gen-download-page.sh
diff options
context:
space:
mode:
authorMichał Łyszczek <michal.lyszczek@bofc.pl>2018-11-09 08:37:45 +0100
committerMichał Łyszczek <michal.lyszczek@bofc.pl>2018-11-09 08:37:45 +0100
commite9ef7ef8a17a08fb93f023f67efc0a763293bf59 (patch)
treeebe26e1333ee2c3d90a15015b775d5a2480fb0b3 /gen-download-page.sh
parent0d814dd4f7333a3c7326f2495d4191798843e5a2 (diff)
downloadlibrb-e9ef7ef8a17a08fb93f023f67efc0a763293bf59.tar.gz
librb-e9ef7ef8a17a08fb93f023f67efc0a763293bf59.tar.bz2
librb-e9ef7ef8a17a08fb93f023f67efc0a763293bf59.zip
update download page generator to include distro packages
Diffstat (limited to 'gen-download-page.sh')
-rwxr-xr-xgen-download-page.sh160
1 files changed, 153 insertions, 7 deletions
diff --git a/gen-download-page.sh b/gen-download-page.sh
index 6b11490..e37a4cb 100755
--- a/gen-download-page.sh
+++ b/gen-download-page.sh
@@ -2,27 +2,173 @@
project='librb'
out='www/downloads.html'
-remote="http://distfiles.kurwinet.pl/${project}"
+remote="https://distfiles.kurwinet.pl/test/${project}"
+gpg="https://distfiles.kurwinet.pl/bofc-signing.pub.gpg"
+asc="https://distfiles.kurwinet.pl/bofc-signing.pub.asc"
+
+get_files_from_remote()
+{
+ remote="${1}"
+
+ curl "${remote}/" -A "${project}-generator" 2>/dev/null | grep "a href=" | \
+ grep -v 'a href=".."' | cut -f2 -d\" | cut -f1 -d/
+}
# extract links to files
-links="$(curl "${remote}/" 2>/dev/null \
+links="$(curl "${remote}/" -A "${project}-generator" 2>/dev/null \
| grep "${project}-[0-9]*\.[0-9]*\.[0-9]*\." | sort -r)"
-exec 1<&-
+exec 6>&1
exec 1<>"${out}"
echo > "${out}"
echo "<h1>downloads</h1>"
-echo "<h2>git</h2>"
+echo "<p>"
+echo "Below you can find source files and binary packages for various systems."
+echo "<b>(s)</b> right of package name is a gpg signature. You can download"
+echo "<a href=\"${gpg}\">gpg file</a> or"
+echo "<a href=\"${asc}\">armored asc file</a> to verify files. You can also"
+echo "look for key on public keyservers, fingerprint is<br><br>"
+echo "&nbsp;&nbsp;&nbsp;&nbsp;63D0 C3DB 42AF 3B4F CF6E 7880 E84A 7E61 C785 0C62<br><br>"
+echo "You can download key directly from keyserver with<br><br>"
+echo "&nbsp;&nbsp;&nbsp;&nbsp;gpg --recv-keys 63D0C3DB42AF3B4FCF6E7880E84A7E61C7850C62<br><br>"
+echo "Then you can verify downloaded image with command<br><br>"
+echo "&nbsp;&nbsp;&nbsp;&nbsp;gpg --verify &lt;sig-file&gt; &lt;package-file&gt;"
+echo "</p><p>"
+echo "All files can also be downloaded from: <a href=\"${remote}/\">${remote}</a><br>"
+echo "</p>"
+echo "<h1>git</h1>"
echo "<p>"
echo "git clone git@kurwinet.pl:${project}<br>"
echo "git clone git://kurwinet.pl/${project}<br>"
echo "git clone http://git.kurwinet.pl/${project}<br>"
echo "</p>"
-echo "<h2>tarballs</h2>"
+echo "<h1>tarballs (source code)</h1>"
echo "<pre>"
-# convert links to absolute
-echo "${links}" | sed "s!a href=\"!a href=\"${remote}/!"
+files="$(get_files_from_remote "${remote}/" | \
+ grep "${project}-[0-9]*\.[0-9]*\.[0-9]*\.")"
+versions="$(echo "${files}" | tr ' ' '\n' | rev | \
+ cut -f1 -d- | rev | cut -f1-3 -d. | sort -Vur)"
+
+for v in ${versions}
+do
+ printf "%-10s%s(%s) %s(%s) %s(%s)" "${v}" \
+ "<a href=\"${remote}/${project}-${v}.tar.gz\">tar.gz</a>" \
+ "<a href=\"${remote}/${project}-${v}.tar.gz.sig\">s</a>" \
+ "<a href=\"${remote}/${project}-${v}.tar.bz2\">tar.bz2</a>" \
+ "<a href=\"${remote}/${project}-${v}.tar.bz2.sig\">s</a>" \
+ "<a href=\"${remote}/${project}-${v}.tar.xz\">tar.xz</a>" \
+ "<a href=\"${remote}/${project}-${v}.tar.xz.sig\">s</a>"
+done
+
echo "</pre>"
+
+distros="$(get_files_from_remote "${remote}/" | \
+ grep -v "${project}-[0-9]*\.[0-9]*\.[0-9]*\." | \
+ sort -t'-' -k1,1 -k2,2Vr)"
+
+for d in ${distros}
+do
+ dname="$(echo ${d} | cut -f1 -d-)"
+ dvers="$(echo ${d} | cut -f2 -d-)"
+ archs="$(get_files_from_remote "${remote}/${d}/")"
+
+ echo "<h1>${dname} ${dvers}</h1>"
+
+ for a in ${archs}
+ do
+ files="$(get_files_from_remote "${remote}/${d}/${a}/")"
+ echo "<h2>${a}</h2>"
+
+ case "${dname}" in
+
+ debian|ubuntu)
+ versions="$(echo ${files} | tr ' ' '\n' | \
+ cut -f2 -d_ | cut -f1-3 -d. | sort -Vur)"
+ ;;
+
+ centos|rhel|opensuse|fedora)
+ versions="$(echo ${files} | tr ' ' '\n' | rev | \
+ cut -f2 -d- | rev | cut -f1-3 -d. | sort -Vur)"
+ ;;
+
+ slackware)
+ versions="$(echo ${files} | tr ' ' '\n' | rev | \
+ cut -f3 -d- | rev | cut -f1-3 -d. | sort -Vur)"
+ ;;
+ esac
+
+ echo "<pre>"
+ for v in ${versions}
+ do
+ case "${dname}" in
+
+ debian)
+ ABI="$(echo "${v}" | cut -f1 -d.)"
+ printf "%-10s%s(%s) %s(%s) %s(%s) %s(%s) %s(%s) %s(%s)\n" "${v}" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}_${v}_${a}.deb\">deb</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}_${v}_${a}.deb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}-dbgsym_${v}_${a}.deb\">dbgsym</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}-dbgsym_${v}_${a}.deb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-dev_${v}_${a}.deb\">dev</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-dev_${v}_${a}.deb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}.dsc\">dsc</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}.dsc.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.build\">build</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.build.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.buildinfo\">buildinfo</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.buildinfo.sig\">s</a>"
+ ;;
+
+ ubuntu)
+ ABI="$(echo "${v}" | cut -f1 -d.)"
+ printf "%-10s%s(%s) %s(%s) %s(%s) %s(%s) %s(%s) %s(%s)\n" "${v}" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}_${v}_${a}.deb\">deb</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}_${v}_${a}.deb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}-dbgsym_${v}_${a}.ddeb\">dbgsym</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}${ABI}-dbgsym_${v}_${a}.ddeb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-dev_${v}_${a}.deb\">dev</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-dev_${v}_${a}.deb.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}.dsc\">dsc</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}.dsc.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.build\">build</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.build.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.buildinfo\">buildinfo</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}_${v}_${a}.buildinfo.sig\">s</a>"
+ ;;
+
+ rhel|centos|opensuse|fedora)
+ printf "%-10s%s(%s) %s(%s) %s(%s)\n" "${v}" \
+ "<a href=\"${remote}/${d}/${a}/${project}-${v}-1.${a}.rpm\">rpm</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-${v}-1.${a}.rpm.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-debuginfo-${v}-1.${a}.rpm\">dbginfo</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-debuginfo-${v}-1.${a}.rpm.sig\">s</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-devel-${v}-1.${a}.rpm\">devel</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-devel-${v}-1.${a}.rpm.sig\">s</a>"
+ ;;
+
+ slackware)
+ printf "%-10s%s(%s)\n" "${v}" \
+ "<a href=\"${remote}/${d}/${a}/${project}-${v}.${a}-1.tgz\">tgz</a>" \
+ "<a href=\"${remote}/${d}/${a}/${project}-${v}.${a}-1.tgz.sig\">s</a>"
+ ;;
+ esac
+ done
+ echo "</pre>"
+ done
+done
+
+exec 1>&6 6>&-
+
+for l in $(lynx -listonly -nonumbers -dump "${out}" | grep "https://distfiles")
+do
+ echo -n "checking ${l}... "
+ curl -sSfl -A "${project}-generator" "${l}" >/dev/null
+
+ if [ ${?} -eq 0 ]
+ then
+ echo "ok"
+ fi
+done