You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
46 lines
1.5 KiB
#!/bin/echo run this from "make root"
|
|
|
|
# Plumbing to download files
|
|
|
|
[ -z "$ROOT" ] && echo "no" && exit 1
|
|
mkdir -p "${DOWNLOAD:=$PWD/root_download}" || exit 1
|
|
|
|
### Functions to download, extract, and clean up after source packages.
|
|
|
|
# Usage: download HASH URL
|
|
# Grabs source from URL confirming SHA1 hash (Basically "wget $2")
|
|
# If extracted source is in $DOWNLOAD (no version) build will use that instead
|
|
download() {
|
|
FILE="$(basename "$2")"
|
|
[ -d "$DOWNLOAD/${FILE/-*/}" ] && echo "$FILE" local && return 0
|
|
X=0; while true; do
|
|
[ "$(sha1sum < "$DOWNLOAD/$FILE" 2>/dev/null)" == "$1 -" ] &&
|
|
echo "$FILE" confirmed && break
|
|
rm -f $DOWNLOAD/${FILE/-[0-9]*/}-[0-9]* || exit 1
|
|
[ $X -eq 0 ] && X=1 || exit 1
|
|
wget "$2" -O "$DOWNLOAD/$FILE"
|
|
done
|
|
}
|
|
|
|
# Usage: setupfor PACKAGE
|
|
# Extracts source tarball (or snapshot a repo) to create disposable build dir.
|
|
# Basically "tar xvzCf $MYBUILD $DOWNLOAD/$1.tar.gz && cd $NEWDIR"
|
|
setupfor() {
|
|
PACKAGE="$(basename "$1")"
|
|
announce "$PACKAGE" && cd "$MYBUILD" && rm -rf "$PACKAGE" || exit 1
|
|
if [ -d "$DOWNLOAD/$PACKAGE" ]; then
|
|
cp -la "$DOWNLOAD/$PACKAGE/." "$PACKAGE" && cd "$PACKAGE" || exit 1
|
|
else
|
|
tar xvaf "$DOWNLOAD/$PACKAGE"-*.t* && cd "$PACKAGE"-* || exit 1
|
|
fi
|
|
}
|
|
|
|
# Usage: cleanup
|
|
# Delete setupfor's dir, exiting if build failed (basically "rm -rf $PACKAGE")
|
|
cleanup() {
|
|
[ $? -ne 0 ] && exit 1
|
|
[ -z "$PACKAGE" ] && exit 1
|
|
[ ! -z "$NO_CLEANUP" ] && return
|
|
cd .. && rm -rf "$PACKAGE"* || exit 1
|
|
}
|