tazpkg rev 98

add search-file --mirror
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu May 22 16:30:16 2008 +0000 (2008-05-22)
parents be31f9fb294a
children 404417fa9f93
files tazpkg
line diff
     1.1 --- a/tazpkg	Tue May 20 10:17:33 2008 +0000
     1.2 +++ b/tazpkg	Thu May 22 16:30:16 2008 +0000
     1.3 @@ -770,6 +770,25 @@
     1.4  		echo ""
     1.5  		echo -e "\033[1mSearch result for file :\033[0m $2"
     1.6  		echo "================================================================================"
     1.7 +
     1.8 +		if [ "$3" == "--mirror" ]; then
     1.9 +		
    1.10 +		unlzma -c $LOCALSTATE/files.list.lzma | grep -- ".*:.*$2" | awk '
    1.11 +                            BEGIN { last="" }
    1.12 +                            {
    1.13 +			    	pkg=substr($0,0,index($0,":")-1);
    1.14 +			    	file=substr($0,index($0,":")+2);
    1.15 +                                if (last != pkg) {
    1.16 +				    last = pkg;
    1.17 +				    printf("\n%c[1mPackage %s :%c[0m\n",27,pkg,27);
    1.18 +				}
    1.19 +                                printf("%s\n",file);
    1.20 +                            }'
    1.21 +		match=`unlzma -c $LOCALSTATE/files.list.lzma | \
    1.22 +			grep -- ".*:.*$2" | wc -l`
    1.23 +
    1.24 +		else
    1.25 +
    1.26  		# Check all pkg files.list in search match with specify the package
    1.27  		# name and the full path to the file(s).
    1.28  		for pkg in $INSTALLED/*
    1.29 @@ -783,6 +802,9 @@
    1.30  				match=$(($match+$files))
    1.31  			fi
    1.32  		done
    1.33 +
    1.34 +		fi
    1.35 +
    1.36  		if [ "$match" = "" ]; then
    1.37  			echo "0 file found for : $2"
    1.38  			echo ""
    1.39 @@ -1068,11 +1090,13 @@
    1.40  			mv -f packages.desc packages.desc.bak 2>/dev/null
    1.41  			mv -f packages.txt packages.txt.bak 2>/dev/null
    1.42  			mv -f packages.list packages.list.bak 2>/dev/null
    1.43 +			mv -f files.list.lzma files.list.lzma.bak 2> /dev/nul
    1.44  			status
    1.45  		fi
    1.46  		download packages.desc
    1.47  		download packages.txt
    1.48  		download packages.list
    1.49 +		download files.list.lzma
    1.50  		if [ -f "$LOCALSTATE/packages.list.bak" ]; then
    1.51  			diff -u packages.list.bak packages.list | grep ^+[a-z] > packages.diff
    1.52  			sed -i s/+// packages.diff