openwrt/scripts/ipkg-make-index.sh
Jo-Philipp Wich 3edf9c3544 Never write errors to stdout from ipkg-make-index.sh
Since the output of ipkg-make-index.sh is unconditionally used to create
the Packages file, sending the errors into this file is unacceptable
(both because they are not shown to users and because they make an
invalid Packages file).

For incorrect invocation, write to stderr.
For errors from which, send to /dev/null with stdout.

Signed-off-by: Kevin Locke <klocke@digitalenginesoftware.com>

SVN-Revision: 25677
2011-02-23 22:58:58 +00:00

25 lines
666 B
Bash
Executable File

#!/bin/sh
set -e
pkg_dir=$1
if [ -z $pkg_dir ] || [ ! -d $pkg_dir ]; then
echo "Usage: ipkg-make-index <package_directory>" >&2
exit 1
fi
which md5sum >/dev/null 2>&1 || alias md5sum=md5
for pkg in `find $pkg_dir -name '*.ipk' | sort`; do
echo "Generating index for package $pkg" >&2
file_size=$(ls -l $pkg | awk '{print $5}')
md5sum=$(md5sum $pkg | awk '{print $1}')
# Take pains to make variable value sed-safe
sed_safe_pkg=`echo $pkg | sed -e 's/^\.\///g' -e 's/\\//\\\\\\//g'`
tar -xzOf $pkg ./control.tar.gz | tar xzOf - ./control | sed -e "s/^Description:/Filename: $sed_safe_pkg\\
Size: $file_size\\
MD5Sum: $md5sum\\
Description:/"
echo ""
done