1#! /bin/sh 2# ex:ts=8 3 4# Copyright (c) 2003 David E. O'Brien 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 16# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26# SUCH DAMAGE. 27# 28# $FreeBSD$ 29 30# Creates an INDEX file suitable for an ISO distribution image from a master 31# INDEX file. The generated INDEX file contains only the packages in the 32# supplied directory. 33 34case $# in 35 3) PKG_EXT="tbz" ;; 36 4) PKG_EXT=$4 ;; 37 *) 38 echo `basename $0` "<master index file> <output index file> <pkg dir> [pkg ext]" 39 exit 1 40 ;; 41esac 42 43PKG_LIST=$(basename `ls $3/*.${PKG_EXT}` | sed -e "s/\.${PKG_EXT}$//") 44REGEX=$(echo ${PKG_LIST} | sed \ 45 -e 's/ /|/g' \ 46 -e 's/\./\\\./g' \ 47 -e 's/\+/\\\+/g' \ 48 -e 's/\^/\\\^/g') 49 50egrep "^(${REGEX})" $1 > $2 51 52if [ $(echo ${PKG_LIST} | wc -w) != $(wc -l < $2) ]; then 53 echo "ERROR: some packages not found in $1" 54 exit 1 55else 56 exit 0 57fi 58