From e9ef7ef8a17a08fb93f023f67efc0a763293bf59 Mon Sep 17 00:00:00 2001 From: Michał Łyszczek Date: Fri, 9 Nov 2018 08:37:45 +0100 Subject: update download page generator to include distro packages --- gen-download-page.sh | 160 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file 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 "

downloads

" -echo "

git

" +echo "

" +echo "Below you can find source files and binary packages for various systems." +echo "(s) right of package name is a gpg signature. You can download" +echo "gpg file or" +echo "armored asc file to verify files. You can also" +echo "look for key on public keyservers, fingerprint is

" +echo "    63D0 C3DB 42AF 3B4F CF6E 7880 E84A 7E61 C785 0C62

" +echo "You can download key directly from keyserver with

" +echo "    gpg --recv-keys 63D0C3DB42AF3B4FCF6E7880E84A7E61C7850C62

" +echo "Then you can verify downloaded image with command

" +echo "    gpg --verify <sig-file> <package-file>" +echo "

" +echo "All files can also be downloaded from: ${remote}
" +echo "

" +echo "

git

" echo "

" echo "git clone git@kurwinet.pl:${project}
" echo "git clone git://kurwinet.pl/${project}
" echo "git clone http://git.kurwinet.pl/${project}
" echo "

" -echo "

tarballs

" +echo "

tarballs (source code)

" echo "
"
 
-# 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}" \
+        "tar.gz" \
+        "s" \
+        "tar.bz2" \
+        "s" \
+        "tar.xz" \
+        "s"
+done
+
 echo "
" + +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 "

${dname} ${dvers}

" + + for a in ${archs} + do + files="$(get_files_from_remote "${remote}/${d}/${a}/")" + echo "

${a}

" + + 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 "
"
+        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}" \
+                    "deb" \
+                    "s" \
+                    "dbgsym" \
+                    "s" \
+                    "dev" \
+                    "s" \
+                    "dsc" \
+                    "s" \
+                    "build" \
+                    "s" \
+                    "buildinfo" \
+                    "s"
+                ;;
+
+            ubuntu)
+                ABI="$(echo "${v}" | cut -f1 -d.)"
+                printf "%-10s%s(%s)  %s(%s)  %s(%s)  %s(%s)  %s(%s)  %s(%s)\n" "${v}" \
+                    "deb" \
+                    "s" \
+                    "dbgsym" \
+                    "s" \
+                    "dev" \
+                    "s" \
+                    "dsc" \
+                    "s" \
+                    "build" \
+                    "s" \
+                    "buildinfo" \
+                    "s"
+                ;;
+
+            rhel|centos|opensuse|fedora)
+                printf "%-10s%s(%s)  %s(%s)  %s(%s)\n" "${v}" \
+                    "rpm" \
+                    "s" \
+                    "dbginfo" \
+                    "s" \
+                    "devel" \
+                    "s"
+                ;;
+
+            slackware)
+                printf "%-10s%s(%s)\n" "${v}" \
+                    "tgz" \
+                    "s"
+                ;;
+            esac
+        done
+        echo "
" + 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 -- cgit v1.2.3-8-gadcc