3 # Generates XML manifest of packages for
4 # http://www.planet-lab.org/Software/download.php
6 # Mark Huang <mlhuang@cs.princeton.edu>
7 # Copyright (C) 2004 The Trustees of Princeton University
9 # $Id: packages.sh,v 1.6 2005/06/14 18:53:43 mlhuang Exp $
16 while getopts "b:h" opt ; do
22 echo "usage: `basename $0` [OPTION]..."
23 echo " -b base URL base for packages (default: none)"
28 shift $(($OPTIND - 1))
37 -e 's/\&/\&/g' | sed \
53 -e 's/\\/\\\\/g' | sed \
60 # XXX rpmquery version 4.3.1 crashes if too large of a queryformat is passed
61 #TAGS=$(rpm --querytags)
62 TAGS="NAME VERSION RELEASE ARCH URL BUILDTIME DESCRIPTION"
65 <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
66 <!-- \$Id: packages.sh,v 1.6 2005/06/14 18:53:43 mlhuang Exp $ -->
67 <!-- Generated at $(date) in $(cd ${1-.} && pwd -P) on $HOSTNAME by $USER -->
69 <!ELEMENT PACKAGES (PACKAGE)*>
73 <!ELEMENT PACKAGE (#PCDATA)>
77 # List each tag as an attribute
85 # Build up QUERYFORMAT for later use
86 QUERYFORMAT="$QUERYFORMAT $tag=@QUOTE@%{$tag}@QUOTE@\n"
98 # For every RPM in the current directory
99 RPMS=$(find ${1-.} -name '*.rpm' -and -not -name '*debuginfo*' | sort)
100 for rpm in $RPMS ; do
106 # Print the tags (@QUOTE@ prevents escaping of syntax)
107 rpmquery --queryformat "$QUERYFORMAT" -p $rpm | xml_escape_cdata | sed -e 's/@QUOTE@/"/g'
109 # Print the name of the RPM
112 $(basename $rpm | xml_escape_pcdata)