diff options
author | James <> | 2015-11-04 11:49:21 +0000 |
---|---|---|
committer | James <> | 2015-11-04 11:49:21 +0000 |
commit | 716ca530e1c4515d8683c9d5be3d56b301758b66 (patch) | |
tree | 700eb5bcc1a462a5f21dcec15ce7c97ecfefa772 /scripts/ipkg-make-index.sh | |
download | trunk-47381-master.tar.gz trunk-47381-master.tar.bz2 trunk-47381-master.zip |
Diffstat (limited to 'scripts/ipkg-make-index.sh')
-rwxr-xr-x | scripts/ipkg-make-index.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/scripts/ipkg-make-index.sh b/scripts/ipkg-make-index.sh new file mode 100755 index 0000000..1822227 --- /dev/null +++ b/scripts/ipkg-make-index.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +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 +empty=1 + +for pkg in `find $pkg_dir -name '*.ipk' | sort`; do + empty= + name="${pkg##*/}" + name="${name%%_*}" + [[ "$name" = "kernel" ]] && continue + [[ "$name" = "libc" ]] && continue + echo "Generating index for package $pkg" >&2 + file_size=$(ls -l $pkg | awk '{print $5}') + md5sum=$(md5sum $pkg | awk '{print $1}') + sha256sum=$(openssl dgst -sha256 $pkg | awk '{print $2}') + # 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\\ +SHA256sum: $sha256sum\\ +Description:/" + echo "" +done +[ -n "$empty" ] && echo +exit 0 |