diff --git a/roles/mirror/thinlinc/files/sync-thinlinc-repo b/roles/mirror/thinlinc/files/sync-thinlinc-repo.sh similarity index 59% rename from roles/mirror/thinlinc/files/sync-thinlinc-repo rename to roles/mirror/thinlinc/files/sync-thinlinc-repo.sh index 2638197..6d6c44a 100755 --- a/roles/mirror/thinlinc/files/sync-thinlinc-repo +++ b/roles/mirror/thinlinc/files/sync-thinlinc-repo.sh @@ -1,4 +1,6 @@ -#!/bin/bash +#!/bin/sh + +set -eu umask 022 @@ -16,8 +18,8 @@ if [ ! -d "${REPODIR}" ]; then mkdir "${REPODIR}" fi -LOCATION=$(curl -s "${BASEURL}/thinlinc/download" | \ - sed -n 's/^.*64-bit.*/\1/p') +LOCATION=$(curl -sf "${BASEURL}/thinlinc/download/" | \ + sed -n 's/^.*&2 exit 1 @@ -25,20 +27,25 @@ fi PKGNAME="$(basename "${LOCATION}")" if [ ! -f "${REPODIR}/${PKGNAME}" ]; then - echo "New thinlinc version found" + VERSION="$(echo "$PKGNAME" | sed -n 's/^thinlinc-client-\([0-9\.]*\)-[0-9]*\.x86_64\.rpm/\1/p')" + + echo "New thinlinc version ${VERSION} found" echo "" + tmpfile="$(mktemp)" + trap 'rm -f "$tmpfile"' EXIT + # assume that server version goes in-line with client echo "Downloading server package:" - curl -so "${REPODIR}/.server.zip" "${BASEURL}/downloads/server/download.py" + curl -sfo "$tmpfile" "${BASEURL}/downloads/server/tl-${VERSION}-server.zip" echo "Extracting server rpm files:" - unzip -jd ${REPODIR} ${REPODIR}/.server.zip \*.rpm + unzip -jfvd "$REPODIR" "$tmpfile" \*.rpm echo "Cleaning up..." - rm -f ${REPODIR}/.server.zip echo "" echo "Downloading client rpm package:" - curl -so "${REPODIR}/${PKGNAME}" "${BASEURL}${LOCATION}" + echo $LOCATION + curl -sfo "${REPODIR}/${PKGNAME}" "${LOCATION}" echo "" echo "Updating repository metadata:" createrepo_c "${REPODIR}"