#!/bin/ash
#220326 sfs
[ ! "$1" ] || [ "$1" = "--help" ] && echo "List packages.deb in dir ore module.pfs
    Use: $0  [-v] [dir|*.pfs]
	-v	package version" && exit 1
#p="`cd "$1"/var/lib/dpkg/infonew; ls *.md5sums | sed 's/\(:i386\)\?.md5sums//'`" || exit
#[ "$3" ] && { bash -c "comm -3 <($0 -v $1) <($0 -v $2)" ; exit ; }

#comm -3 <($0 -v $1) <($0 -v $2) ;exit
###[ "$3" ] && { comm -3 <($0 -v $1) <($0 -v $2) ; exit ; }
[ "$1" = "-v" ] && v=1 && shift

if [ -d "$1" ];then
#    ls -1 "$1"/var/lib/dpkg/info/*.list  | sed -n 's,^.*/var/lib/dpkg/info/\([^:]*\)\(:.\+\)\?\.list$,\1,p'
#    ls -1 "$1"/var/lib/dpkg/info/*.md5sums  | sed -n 's,^.*/var/lib/dpkg/info/\([^:]*\)\(:.\+\)\?\.md5sums$,\1,p' |dpkg -s  |awk '/^Version: / || /^Package: / {printf $2}'
#    ls -1 "$1"/var/lib/dpkg/info/*.md5sums  | sed -n 's,^.*/var/lib/dpkg/info/\([^:]*\)\(:.\+\)\?\.md5sums$,\1,p' |dpkg -l  |awk ' {print $2"\t"$3}' |sed 's/:amd64 /\t/'
        d="`ls -1 "$1"/var/lib/dpkg/info/*.md5sums  | sed -n 's,^.*/var/lib/dpkg/info/\([^:]*\)\(:.\+\)\?\.md5sums$,\1,p'`"
	s="$1"/var/lib/dpkg/status
    else 
	d="`unsquashfs -l "$1" | sed -n 's,^.*/var/lib/dpkg/info/\([^:]*\)\(:.\+\)\?\.md5sums$,\1,p'`"
	mkdir -p /tmp/"$1" && sudo mount "$1" /tmp/"$1" && s=/tmp/"$1"/var/lib/dpkg/status
fi

#[ "$v" ] && echo "$d" |dpkg -l  |awk ' {print $2"\t"$3}' |sed 's/:amd64 /\t/' || echo "$d"
#[ "$v" ] && dpkg -l $d |awk '/^[hi]i/ {print $2"\t"$3}' |sed 's/:amd64 /\t/' || echo "$d"
if [ "$v" ] ;then
 if [ -f "$s" ];then
    awk '/^Package: / {c+=1; p[c]=$2} /^Version: / { v[c]=$2 } END { for (i=1; i<=c; i+=1) {print p[i]" "v[i]} } ' "$s" \
	| grep "$d" |sed 's/:amd64 /\t/' 
 else cat /tmp/"$1"/var/lib/dpkg/_status/*.stt  |awk '/^Package: / {c+=1; p[c]=$2} /^Version: / { v[c]=$2 } END { for (i=1; i<=c; i+=1) {print p[i]" "v[i]} } '  \
	| grep "$d" |sed 's/:amd64 /\t/' 
 fi
else  echo "$d"
fi
    [ ! -d "$1" ] && sudo umount  /tmp/"$1" && rmdir  /tmp/"$1"
#echo "$p" ;
exit

rm -R "$1"/var/lib/dpkg
mkdir -p "$1"/var/lib/dpkg && echo "$p" >> "$1"/var/lib/dpkg/"`basename $1`".list
