#!/bin/sh # Require curl, html2text URLs="https://download.kopano.io/community/core%3A/ https://download.kopano.io/community/meet%3A/ https://download.kopano.io/community/webapp%3A/" HTML2TEXT_BIN="html2text" HTML2TEXT_OPT="-width 2000" DISTRI="Debian_10" ARCH="amd64" TMPDIR=$(mktemp -d) LOCALREPODIR="/var/cache/apt-kopano" echo "Retrieving Source packages..." for URL in ${URLs} ; do TEMPBASH=$(mktemp) cat > ${TEMPBASH} << EOF #!/bin/sh PACKAGE=\$(curl -s ${URL} | ${HTML2TEXT_BIN} ${HTML2TEXT_OPT} - | awk '\$2 ~ /Debian_10.*(${ARCH}|all)/ {print \$2}') EOF . ${TEMPBASH} rm ${TEMPBASH} echo "${PACKAGE}" if [ -e "${LOCALREPODIR}/list_of_file" ] ; then if grep ${PACKAGE} "${LOCALREPODIR}/list_of_file" > /dev/null 2>&1 ; then echo "Package already integrated into ${LOCALREPODIR}/repo" continue fi fi curl -qo "${TMPDIR}/${PACKAGE}" ${URL}${PACKAGE} echo ${PACKAGE} >> "${TMPDIR}/list_of_file" if [ -e "${LOCALREPODIR}/list_of_file" ] ; then PACKAGE_NAME=$(echo ${PACKAGE} | awk -F'-' '{ print $1 }') TEMPBASH=$(mktemp) cat > ${TEMPBASH} << EOF #!/bin/sh sed -i '/^${PACKAGE_NAME}/d' "${LOCALREPODIR}/list_of_file" echo ${PACKAGE} >> "${LOCALREPODIR}/list_of_file" EOF sh ${TEMPBASH} rm ${TEMPBASH} else echo "${PACKAGE}" >> "${LOCALREPODIR}/list_of_file" fi done echo "Uncompress Source Packages..." cd "${TMPDIR}" if [ -e "${TMPDIR}/list_of_file" ] ; then cat "${TMPDIR}/list_of_file" | while read file ; do tar xf "$file" done else echo "Nothing to uncompress..." fi echo "Mooving .deb files into ${LOCALREPODIR}..." mkdir -p "${LOCALREPODIR}/repo/" find "${TMPDIR}" -type f -name '*.deb' -exec mv {} "${LOCALREPODIR}/repo/" \; echo "Cleaning old packages..." LANG="" dpkg-scanpackages /var/cache/apt-kopano/repo 2>&1 >/dev/null | grep -Po '((\/.*?deb)(?=.*?repeat;))|used that.*?\K(\/.*deb)' | xargs -r rm -v echo "Building Packages file..." TEMPBASH=$(mktemp) cat > ${TEMPBASH} << EOF #!/bin/sh dpkg-scanpackages "${LOCALREPODIR}/repo" | sed 's@^Filename:.*${LOCALREPODIR}/\(.*\)@Filename: \1@g' > "${LOCALREPODIR}/Packages" EOF sh ${TEMPBASH} 2>&1 rm ${TEMPBASH} rm -r "${TMPDIR}"