#!/bin/sh
|
|
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
|
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
|
|
#
|
|
# Filename: bin/sde-list-download
|
|
# Copyright (C) 2007 - 2012 The OpenSDE Project
|
|
#
|
|
# More information can be found in the files COPYING and README.
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License. A copy of the
|
|
# GNU General Public License can be found in the file COPYING.
|
|
# --- SDE-COPYRIGHT-NOTE-END ---
|
|
|
|
[ -n "$SDEROOT" ] ||
|
|
export SDEROOT=$( cd "${0%/*}/.."; pwd -P )
|
|
|
|
. $SDEROOT/lib/libsde.in
|
|
|
|
list_usage() {
|
|
local progname=${0##*/}
|
|
cat <<EOT
|
|
Usage: $progname [--cfg <config>] [-erkl] [ITEMS...]
|
|
EOT
|
|
}
|
|
|
|
shortopts='c:erpkl'
|
|
longopts='cfg:,extenders,repositories,package,checksum,location'
|
|
options=$( getopt -o "$shortopts" -l "$longopts" -- "$@" )
|
|
if [ $? -ne 0 ]; then
|
|
list_usage
|
|
exit -1
|
|
fi
|
|
|
|
# load new arguments list
|
|
eval set -- "$options"
|
|
|
|
config=
|
|
extenders=
|
|
repositories=
|
|
|
|
want_package=
|
|
want_checksum=
|
|
want_location=
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--) shift; break ;;
|
|
|
|
-c|--cfg) shift; config="$1" ;;
|
|
|
|
-e|--extenders)
|
|
extenders=yes ;;
|
|
-r|--repositories)
|
|
repositories=yes ;;
|
|
|
|
-p|--package) want_package=yes ;;
|
|
-k|--checksum) want_checksum=yes ;;
|
|
-l|--location) want_location=yes ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
# TODO: target/$target/download.txt
|
|
|
|
$SDEROOT/bin/sde-list-pkg ${config:+-c $config} ${extenders:+-e} ${repositories:+-r} -- "$@" | while read descfile; do
|
|
pkg=$( echo "$descfile" | cut -d/ -f3 )
|
|
grep '^\[D\]' $SDEROOT/$descfile | while read x cksum gzfile location; do
|
|
output=
|
|
|
|
# package name
|
|
[ -z "$want_package" ] || output="$pkg"
|
|
|
|
# checksum
|
|
[ -z "$want_checksum" ] || output="${output:+$output\t}$cksum"
|
|
|
|
# destination file
|
|
|
|
if [ "$location" != "${location#-}" ]; then
|
|
mirror=local
|
|
location="${location#-}"
|
|
else
|
|
mirror=mirror
|
|
fi
|
|
|
|
bz2file=$( echo "$gzfile" | sed -e 's,\.gpg$,,' -e 's,\.\(t\?\)\(gz\|xz\|Z\)$,.\1bz2,' -e 's,\.tar$,.tar.bz2,' )
|
|
x=$(echo "$bz2file" | cut -c1)
|
|
x="download/$mirror/$x/$bz2file"
|
|
output="${output:+$output\t}$x"
|
|
|
|
# source location
|
|
if [ -n "$want_location" ]; then
|
|
if [ "$location" != "${location#!}" ]; then
|
|
# keep untouched
|
|
source="${location#!}"
|
|
elif [ "$location" = "${location% *}" -a "$location" != "${location%/}" ]; then
|
|
# no spaces, and trailing '/', append gzfile
|
|
source="${location}${gzfile}"
|
|
else
|
|
source="$location"
|
|
fi
|
|
output="$output\t$source"
|
|
fi
|
|
|
|
$ECHO_E "$output"
|
|
done
|
|
done
|