diff options
Diffstat (limited to 'bin/pget.sh')
-rwxr-xr-x | bin/pget.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/bin/pget.sh b/bin/pget.sh new file mode 100755 index 0000000..d94a12d --- /dev/null +++ b/bin/pget.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +set -e + +case "$(basename ${0})" in + p*) + MODE="progress-linux" + ;; + + b*) + MODE="bfh" + ;; +esac + +CURDIR="${PWD}" + +DSCS="${@}" + +for DSC in ${DSCS} +do + URL="$(echo ${DSC} | sed -e 's|%2B|+|g' -e 's|%7E|~|g')" + + PACKAGE="$(basename ${URL} .dsc | awk -F_ '{ print $1 }')" + + if [ "$(basename ${PWD})" != "${PACKAGE}" ] + then + mkdir -p "${PACKAGE}" + cd "${PACKAGE}" + fi + + VERSION="$(wget -q ${URL} -O - | grep -m1 '^Version: ' | awk '{ print $2 }')" + + SOURCE_VERSION="$(echo ${VERSION} | awk -F: '{ print $2 }')" + SOURCE_VERSION="${SOURCE_VERSION:-${VERSION}}" + + UPSTREAM_VERSION="$(echo ${SOURCE_VERSION} | awk -F- '{ $NF=""; print $0 }' | sed -e 's| |-|g' -e 's|-$||')" + + mkdir "${VERSION}" + + cd "${VERSION}" + + for ORIG in $(ls ../orig/${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.* ../orig/${PACKAGE}_${UPSTREAM_VERSION}.orig-*.tar.* 2>/dev/null) + do + if [ -e "${ORIG}" ] + then + ln -s "${ORIG}" ./ + fi + done + + /usr/bin/dget --download-only "${URL}" + + for ORIG in $(ls ${PACKAGE}_${UPSTREAM_VERSION}.orig.tar.* ${PACKAGE}_${UPSTREAM_VERSION}.orig-*.tar.* 2>/dev/null) + do + if [ -e "${ORIG}" ] && [ ! -h "${ORIG}" ] + then + mkdir -p ../orig + mv "${ORIG}" ../orig + + ln -s ../orig/"${ORIG}" . + fi + done + + cd .. + rm -f current + ln -s "${VERSION}" current + + cd "${CURDIR}" +done |