diff options
author | Michał Łyszczek <michal.lyszczek@bofc.pl> | 2018-11-09 08:37:45 +0100 |
---|---|---|
committer | Michał Łyszczek <michal.lyszczek@bofc.pl> | 2018-11-09 08:37:45 +0100 |
commit | e9ef7ef8a17a08fb93f023f67efc0a763293bf59 (patch) | |
tree | ebe26e1333ee2c3d90a15015b775d5a2480fb0b3 /gen-download-page.sh | |
parent | 0d814dd4f7333a3c7326f2495d4191798843e5a2 (diff) | |
download | librb-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-x | gen-download-page.sh | 160 |
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 " 63D0 C3DB 42AF 3B4F CF6E 7880 E84A 7E61 C785 0C62<br><br>" +echo "You can download key directly from keyserver with<br><br>" +echo " gpg --recv-keys 63D0C3DB42AF3B4FCF6E7880E84A7E61C7850C62<br><br>" +echo "Then you can verify downloaded image with command<br><br>" +echo " gpg --verify <sig-file> <package-file>" +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 |