#!/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 <] [-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