summaryrefslogtreecommitdiffstats
path: root/bin/pget.sh
diff options
context:
space:
mode:
Diffstat (limited to 'bin/pget.sh')
-rwxr-xr-xbin/pget.sh68
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