# HG changeset patch # User Christopher Rogers # Date 1350493352 0 # Node ID 6e13cc84c072c81a9551156ab3d178247fc60890 # Parent 3d61397d3367d05993715db3ceac975ed63ba6be search.sh: Add bugs and arch menu options. Made sure that $MIRROR_URL from /etc/slitaz/slitaz.conf is used so mirror url can be changed. diff -r 3d61397d3367 -r 6e13cc84c072 pkgs/search.sh --- a/pkgs/search.sh Thu Oct 11 13:22:21 2012 +0200 +++ b/pkgs/search.sh Wed Oct 17 17:02:32 2012 +0000 @@ -4,6 +4,8 @@ # Aleksej Bobylev # +renice -n 19 $$ + # Parse query string . /etc/slitaz/slitaz.conf . /usr/lib/slitaz/httphelper.sh @@ -65,6 +67,8 @@ Package) NICE="package=$SEARCH";; Desc) NICE="desc=$SEARCH";; Tags) NICE="tags=$SEARCH";; + Arch) NICE="arch=$SEARCH";; + Bugs) NICE="bugs=$SEARCH";; Receipt) NICE="receipt=$SEARCH";; Depends) NICE="depends=$SEARCH";; BuildDepends) NICE="builddepends=$SEARCH";; @@ -116,7 +120,7 @@ . /usr/bin/gettext.sh export TEXTDOMAIN='tazpkg-web' -SEARCH="" +unset SEARCH VERBOSE=0 for i in $(echo $QUERY_STRING | sed 's/[?&]/ /g'); do # SLITAZ_VERSION=cooking @@ -128,6 +132,8 @@ file=*) SEARCH=${i#*=}; OBJECT=File;; desc=*) SEARCH=${i#*=}; OBJECT=Desc;; tags=*) SEARCH=${i#*=}; OBJECT=Tags;; + arch=*) SEARCH=${i#*=}; OBJECT=Arch;; + bugs=*) SEARCH=${i#*=}; OBJECT=Bugs;; receipt=*) SEARCH=${i#*=}; OBJECT=Receipt;; filelist=*) SEARCH=${i#*=}; OBJECT=File_list;; package=*) SEARCH=${i#*=}; OBJECT=Package;; @@ -156,6 +162,8 @@ File) selected_file="selected";; Desc) selected_desc="selected";; Tags) selected_tags="selected";; + Arch) selected_arch="selected";; + Bugs) selected_bugs="selected";; Receipt) selected_receipt="selected";; File_list) selected_file_list="selected";; Depends) selected_depends="selected";; @@ -175,7 +183,7 @@ # unescape query SEARCH="$(echo $SEARCH | sed 's/%2B/+/g; s/%3A/:/g; s|%2F|/|g')" -WOK=$SLITAZ_HOME/$SLITAZ_VERSION/wok +WOK=$SLITAZ_HOME/$SLITAZ_VERSION/wok-hg PACKAGES_REPOSITORY=$SLITAZ_HOME/$SLITAZ_VERSION/packages filelist=$PACKAGES_REPOSITORY/files.list.lzma pkglist=$PACKAGES_REPOSITORY/packages.txt @@ -196,6 +204,8 @@ + + @@ -231,6 +241,22 @@ . lib/header.sh } +cat_files_list() +{ + local tmp=/tmp/files.list.$(basename ${1%/packages}) + if [ ! -s $tmp -o $1/files.list.lzma -nt $tmp ]; then + unlzma -c $1/files.list.lzma > $tmp.$$ && mv $tmp.$$ $tmp + fi + case "$2" in + lines) if [ ! -s $tmp.lines -o $tmp -nt $tmp.lines ]; then + cat $tmp | wc -l > $tmp.lines.$$ && + mv $tmp.lines.$$ $tmp.lines + fi + cat $tmp.lines ;; + *) cat $tmp ;; + esac +} + # xHTML Footer. # TODO: caching the summary for 5 minutes xhtml_footer() { @@ -272,9 +298,9 @@ _EOT_ else PACKAGE_HREF="$PACKAGE" - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" - nslookup mirror.slitaz.org | grep -q 127.0.0.1 && - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" + nslookup $(echo $MIRROR_URL | sed 's|http://||g') | grep -q 127.0.0.1 && + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" busybox wget -s $PACKAGE_URL 2> /dev/null && PACKAGE_HREF="$PACKAGE" cat << _EOT_ @@ -287,6 +313,7 @@ EOT } + package_entry_inline() { if [ -s "$(dirname $0)/$SLITAZ_VERSION/$CATEGORY.html" ]; then cat << _EOT_ @@ -294,9 +321,9 @@ _EOT_ else PACKAGE_HREF="$PACKAGE" - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" - nslookup mirror.slitaz.org | grep -q 127.0.0.1 && - PACKAGE_URL="http://mirror.slitaz.org/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$PACKAGE-$VERSION$EXTRA_VERSION.tazpkg" + nslookup $(echo $MIRROR_URL | sed 's|http://||g') | grep -q 127.0.0.1 && + PACKAGE_URL="$MIRROR_URL/packages/$SLITAZ_VERSION/$(cd /var/www/slitaz/mirror/packages/$SLITAZ_VERSION ; ls $PACKAGE-$VERSION*.tazpkg)" busybox wget -s $PACKAGE_URL 2> /dev/null && PACKAGE_HREF="$PACKAGE" cat << _EOT_ @@ -361,9 +388,7 @@ ) fi [ -f $WOK/$i/receipt ] || continue - DEPENDS="" - BUILD_DEPENDS="" - WANTED="" + unset BUILD_DEPENDS DEPENDS WANTED . $WOK/$i/receipt if [ -n "$3" ]; then [ -n "$BUILD_DEPENDS$WANTED" ] && @@ -385,9 +410,7 @@ return;; esac for i in $WOK/* ; do - DEPENDS="" - BUILD_DEPENDS="" - WANTED="" + unset BUILD_DEPENDS DEPENDS WANTED . $i/receipt if [ -n "$2" ]; then echo "$(basename $i) $(echo $WANTED $BUILD_DEPENDS)" @@ -439,7 +462,7 @@ } display_packages_and_files() { -last="" +unset last while read pkg file; do pkg=${pkg%:} if [ "$pkg" != "$last" ]; then @@ -607,9 +630,9 @@

$(eval_gettext "Dependency tree for: \$SEARCH")

 _EOT_
-		ALL_DEPS=""
+		unset ALL_DEPS
 		dep_scan $SEARCH ""
-		SUGGESTED=""
+		unset SUGGESTED
 		. $WOK/$SEARCH/receipt
 		if [ -n "$SUGGESTED" ]; then
 			cat << _EOT_
@@ -618,7 +641,7 @@
 

$(eval_gettext "Dependency tree for: \$SEARCH (SUGGESTED)")

 _EOT_
-			ALL_DEPS=""
+			unset ALL_DEPS
 			dep_scan "$SUGGESTED" "    "
 		fi
 		cat << _EOT_
@@ -627,7 +650,7 @@
 

$(eval_gettext "Reverse dependency tree for: \$SEARCH")

 _EOT_
-		ALL_DEPS=""
+		unset ALL_DEPS
 		rdep_scan $SEARCH
 		cat << _EOT_
 
@@ -660,7 +683,7 @@

$(eval_gettext "\$SEARCH needs these packages to be built")

 _EOT_
-		ALL_DEPS=""
+		unset ALL_DEPS
 		dep_scan $SEARCH "" build
 		cat << _EOT_
 
@@ -668,7 +691,7 @@

$(eval_gettext "Packages who need \$SEARCH to be built")

 _EOT_
-		ALL_DEPS=""
+		unset ALL_DEPS
 		rdep_scan $SEARCH build
 		cat << _EOT_
 
@@ -713,7 +736,7 @@

$(eval_gettext "Result for: \$SEARCH")

_EOT_ - last="" + unset last unlzma -c $filelist \ | grep "$SEARCH" | while read pkg file; do echo "$file" | grep -q "$SEARCH" || continue @@ -750,7 +773,7 @@

$(eval_gettext "Result for: \$SEARCH")

 _EOT_
-		last=""
+		unset last
 		unlzma -c $filelist \
 		| grep ^$SEARCH: | sed 's/.*: /    /' | sort
 		cat << _EOT_
@@ -784,7 +807,7 @@
 

$(eval_gettext "Result for: \$SEARCH")

_EOT_ - last="" + unset last grep -i "$SEARCH" $PACKAGES_REPOSITORY/packages.desc | \ sort | while read pkg extras ; do . $WOK/$pkg/receipt @@ -796,6 +819,45 @@ fi ;; +Bugs) + cat << _EOT_ + +

$(eval_gettext "Result for known bugs")

+
+_EOT_
+	unset last
+	grep ^BUGS= $WOK/*/receipt | \
+	sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do
+		unset BUGS
+		. $WOK/$pkg/receipt
+		package_entry_inline
+		echo "    $BUGS "
+	done
+	cat << _EOT_
+
+_EOT_ + ;; + + +### Arch +Arch) + cat << _EOT_ + +

$(eval_gettext "Result for: \$SEARCH")

+
+_EOT_
+	unset last
+	grep ^HOST_ARCH= $WOK/*/receipt |  grep -i "$SEARCH" | \
+	sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do
+		unset HOST_ARCH
+		. $WOK/$pkg/receipt
+		echo " $HOST_ARCH " | grep -iq " $SEARCH " &&
+		package_entry_inline
+	done
+	cat << _EOT_
+
+_EOT_ + ;; ### Tags Tags) @@ -805,7 +867,7 @@

$(eval_gettext "Result for: \$SEARCH")

_EOT_ - last="" + unset last grep ^TAGS= $WOK/*/receipt | grep -i "$SEARCH" | \ sed "s|$WOK/\(.*\)/receipt:.*|\1|" | sort | while read pkg ; do . $WOK/$pkg/receipt @@ -876,7 +938,7 @@ do . $WOK/$pkg/receipt DESC=" $(gettext description)" - [ -f $WOK/$pkg/description.txt ] || DESC="" + [ -f $WOK/$pkg/description.txt ] || unset DESC cat << _EOT_ $(package_entry)$DESC _EOT_