Commit 5b158804 authored by Kirill Kolyshkin's avatar Kirill Kolyshkin Committed by Andrei Vagin

scripts/build/extract-deb-pkg: fix/improve

Numerous improvement to extract-deb-pkg, in no particular order:

 * Use bash
 * More strict error checking (set -u -o pipefail)
 * Print error message if target dir exists
 * Check number of arguments, provide usage info
 * Separate mirror to a variable for easier changing
 * Use mirrors.kernel.org
 * Use https and check cert with curl
 * Make curl silent
 * Use zgrep instead of gunzip | grep
 * Error out with a message in case more than 1 package was found
 * Do not create a target directory before we need it
 * Fix shellcheck warnings (way too many to mention)
 * ...
 * PROFIT!!!111
Signed-off-by: 's avatarKir Kolyshkin <kolyshkin@gmail.com>
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent d23617e9
#'http://mirror.yandex.ru/debian/pool/main/q/qemu/qemu-user-static_2.5%2Bdfsg-5_amd64.deb' #!/bin/bash
set -e set -e
test -d $1 && exit set -u
mkdir $1 set -o pipefail
cd $1 MIRROR="https://mirrors.kernel.org/ubuntu"
pkg=`curl http://mirror.yandex.ru/ubuntu/dists/xenial/universe/binary-amd64/Packages.gz | zcat | grep "Filename.*$1" | awk '{ print $2 }'` PKGS="$MIRROR/dists/xenial/universe/binary-amd64/Packages.gz"
wget "http://mirror.yandex.ru/ubuntu/$pkg"
pkg=`basename $pkg` if [ $# -ne 1 ]; then
ar vx $pkg echo "Usage: $0 package-name" 1>&2
tar -xJvf data.tar.xz exit 1
fi
if [ -d "$1" ]; then
echo "Directory $1 already exists -- exiting"
exit 0
fi
if ! pkg=$(curl -sSL "$PKGS" | zgrep "Filename.*$1" | awk '{ print $2 }'); then
echo "ERROR: no packages matching $1" 1>&2
exit 1
fi
if [ "$(wc -w <<< "$pkg")" -gt 1 ]; then
echo "$pkg" 1>&2
echo "ERROR: more than one match for $1" 1>&2
exit 1
fi
mkdir "$1"
cd "$1"
wget "$MIRROR/$pkg"
pkg=$(basename "$pkg")
ar vx "$pkg"
tar xJvf data.tar.xz
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment