#!/bin/sh
set -e
pkg_dir=$1
if [ -z "$pkg_dir" ] || [ ! -d "$pkg_dir" ]; then
echo "Usage: opkg-make-index <package_directory>" >&2
exit 1
fi
ipk_files="$(find $pkg_dir -name '*.ipk' | sort)"
if [ -n "$ipk_files" ] ; then
for pkg in $ipk_files ; do
pkg_name="$(basename $pkg)"
name="$(echo $pkg_name | cut -d'_' -f1)"
if [ "$name" = "kernel" ] || [ "$name" = "libc" ] ; then
continue
fi
echo "Generating index for package $pkg" >&2
file_size="$(stat -L -c%s $pkg)"
sha256sum="$(sha256sum $pkg | cut -d' ' -f1)"
tar -xzOf "$pkg" ./control.tar.gz | \
tar -xzOf - ./control | \
sed "s/^Description:/Filename: ${pkg_name}\nSize: ${file_size}\nSHA256sum: ${sha256sum}\nDescription:/"
echo
done
else
echo
fi
opkg-make-index.sh . 2>&1 > Packages.manifest
grep -vE '^(Maintainer|LicenseFiles|Source|SourceName|Require)' Packages.manifest > Packages
gzip -9nc Packages > Packages.gz
usign -G -s privite.key -p public.key -c "Comment for key"
usign -S -m Packages -s private.key