slitaz-forge rev 320

pkgs: Updated search.sh to source /etc/slitaz/slitaz.conf to use its variables for some things. Added nice_url function and fixed it up to use GETPOST function. Also syntex_highlighter function should work now.
author Christopher Rogers <slaxemulator@gmail.com>
date Mon Jul 16 18:48:52 2012 +0000 (2012-07-16)
parents 1f255fd08adf
children 87afe4f1486d
files pkgs/search.sh
line diff
     1.1 --- a/pkgs/search.sh	Mon Jul 16 12:46:27 2012 +0200
     1.2 +++ b/pkgs/search.sh	Mon Jul 16 18:48:52 2012 +0000
     1.3 @@ -5,6 +5,7 @@
     1.4  #
     1.5  
     1.6  # Parse query string
     1.7 +. /etc/slitaz/slitaz.conf
     1.8  . /usr/lib/slitaz/httphelper.sh
     1.9  echo -n "0" > $HOME/ifEven
    1.10  
    1.11 @@ -54,48 +55,54 @@
    1.12  }
    1.13  
    1.14  # Nice URL replacer - to copy url from address bar
    1.15 -if [ "$REQUEST_METHOD" == "POST" -o ! -z $(GET submit) ]; then
    1.16 -	OBJECT=$(GETPOST object)
    1.17 -	SEARCH=$(GETPOST query)
    1.18 -	case "$OBJECT" in
    1.19 -		Package)		NICE="package=$SEARCH";;
    1.20 -		Desc)			NICE="desc=$SEARCH";;
    1.21 -		Tags)			NICE="tags=$SEARCH";;
    1.22 -		Receipt)		NICE="receipt=$SEARCH";;
    1.23 -		Depends)		NICE="depends=$SEARCH";;
    1.24 -		BuildDepends)	NICE="builddepends=$SEARCH";;
    1.25 -		File)			NICE="file=$SEARCH";;
    1.26 -		File_list)		NICE="filelist=$SEARCH";;
    1.27 -		FileOverlap)	NICE="fileoverlap=$SEARCH";;
    1.28 -	esac
    1.29 -	# version, if needed
    1.30 -	version="$(GETPOST version)"
    1.31 -	if [ ! -z "$version" -a "$version" != "cooking" ]; then
    1.32 -		NICE="${NICE}&version=${version:0:1}"
    1.33 +# TODO: deal with POST method of form submitting
    1.34 +nice_url() {
    1.35 +	# if user submitted a form
    1.36 +	if [ "$REQUEST_METHOD" == "POST" -o ! -z $(GET submit) ]; then
    1.37 +		OBJECT="$(GETPOST object)"
    1.38 +		SEARCH="$(GETPOST query)"
    1.39 +		case $OBJECT in
    1.40 +			Package)		NICE="package=$SEARCH";;
    1.41 +			Desc)			NICE="desc=$SEARCH";;
    1.42 +			Tags)			NICE="tags=$SEARCH";;
    1.43 +			Receipt)		NICE="receipt=$SEARCH";;
    1.44 +			Depends)		NICE="depends=$SEARCH";;
    1.45 +			BuildDepends)	NICE="builddepends=$SEARCH";;
    1.46 +			File)			NICE="file=$SEARCH";;
    1.47 +			File_list)		NICE="filelist=$SEARCH";;
    1.48 +			FileOverlap)	NICE="fileoverlap=$SEARCH";;
    1.49 +		esac
    1.50 +		# version, if needed
    1.51 +		version="$(GETPOST version)"
    1.52 +		if [ ! -z "$version" -a "$version" != "cooking" ]; then
    1.53 +			NICE="${NICE}&version=${version:0:1}"
    1.54 +		fi
    1.55 +		# lang, if needed
    1.56 +		query_lang="$(GETPOST lang)"
    1.57 +		pref_lang="$(user_lang)"
    1.58 +		browser_lang="$(ll_lang $pref_lang)"
    1.59 +		if [ ! -z "$query_lang" -a "$query_lang" != "$browser_lang" ]; then
    1.60 +			NICE="${NICE}&lang=$query_lang"
    1.61 +		fi
    1.62 +		# verbose, if needed
    1.63 +		verboseq="$(GETPOST verbose)"
    1.64 +		if [ ! -z "$verboseq" -a "$verboseq" != "0" ]; then
    1.65 +			NICE="${NICE}&verbose=1"
    1.66 +		fi
    1.67 +		# debug, if needed
    1.68 +		debugq="$(GET debug)"
    1.69 +		if [ ! -z "$debugq" -a "$debugq" == "debug" ]; then
    1.70 +			NICE="${NICE}&debug"
    1.71 +		fi
    1.72 +		# redirect
    1.73 +		header "HTTP/1.1 301 Moved Permanently" "Location: $SCRIPT_NAME?$NICE"
    1.74 +#		echo "Location: $SCRIPT_NAME?$NICE"
    1.75 +#		echo
    1.76 +		exit 0
    1.77  	fi
    1.78 -	# lang, if needed
    1.79 -	query_lang="$(GETPOST lang)"
    1.80 -	pref_lang="$(user_lang)"
    1.81 -	browser_lang="$(ll_lang $pref_lang)"
    1.82 -	if [ ! -z "$query_lang" -a "$query_lang" != "$browser_lang" ]; then
    1.83 -		NICE="${NICE}&lang=$query_lang"
    1.84 -	fi
    1.85 -	# verbose, if needed
    1.86 -	verboseq="$(GETPOST verbose)"
    1.87 -	if [ ! -z "$verboseq" -a "$verboseq" != "0" ]; then
    1.88 -		NICE="${NICE}&verbose=1"
    1.89 -	fi
    1.90 -	# debug, if needed
    1.91 -	debugq="$(GET debug)"
    1.92 -	if [ ! -z "$debugq" -a "$debugq" == "debug" ]; then
    1.93 -		NICE="${NICE}&debug"
    1.94 -	fi
    1.95 -	# redirect
    1.96 -	header "HTTP/1.1 301 Moved Permanently" "Location: $SCRIPT_NAME?$NICE"
    1.97 -	exit 0
    1.98 -fi
    1.99 +}
   1.100  
   1.101 -
   1.102 +nice_url
   1.103  
   1.104  OBJECT="$(GET object)"
   1.105  SEARCH="$(GET query)"
   1.106 @@ -127,6 +134,8 @@
   1.107  		depends=*)				SEARCH=${i#*=}; OBJECT=Depends;;
   1.108  		builddepends=*)			SEARCH=${i#*=}; OBJECT=BuildDepends;;
   1.109  		fileoverlap=*)			SEARCH=${i#*=}; OBJECT=FileOverlap;;
   1.110 +		category=*)				SEARCH=${i#*=}; OBJECT=Category;;
   1.111 +		maintainer=*)			SEARCH=${i#*=}; OBJECT=Maintainer;;
   1.112  		version=[1-9]*)			i=${i%%.*}; SLITAZ_VERSION=${i#*=}.0;;
   1.113  		version=s*|version=4*)	SLITAZ_VERSION=stable;;
   1.114  		version=u*)				SLITAZ_VERSION=undigest;;
   1.115 @@ -166,8 +175,11 @@
   1.116  # unescape query
   1.117  SEARCH="$(echo $SEARCH | sed 's/%2B/+/g; s/%3A/:/g; s|%2F|/|g')"
   1.118  
   1.119 -WOK=/home/slitaz/$SLITAZ_VERSION/wok
   1.120 -PACKAGES_REPOSITORY=/home/slitaz/$SLITAZ_VERSION/packages
   1.121 +WOK=$SLITAZ_HOME/$SLITAZ_VERSION/wok
   1.122 +PACKAGES_REPOSITORY=$SLITAZ_HOME/$SLITAZ_VERSION/packages
   1.123 +filelist=$PACKAGES_REPOSITORY/files.list.lzma
   1.124 +pkglist=$PACKAGES_REPOSITORY/packages.txt
   1.125 +equiv=$PACKAGES_REPOSITORY/packages.equiv
   1.126  
   1.127  # Search form
   1.128  # TODO: add hint 'You are can search for depends loop, if textfield is empty'...
   1.129 @@ -223,14 +235,14 @@
   1.130  # TODO: caching the summary for 5 minutes
   1.131  xhtml_footer() {
   1.132  	PKGS=$(ls $WOK/ | wc -l)
   1.133 -	FILES=$(unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | wc -l)
   1.134 +	FILES=$(unlzma -c $filelist | wc -l)
   1.135  	. lib/footer.sh
   1.136  }
   1.137  
   1.138  installed_size()
   1.139  {
   1.140  	if [ $VERBOSE -gt 0 ]; then
   1.141 -		inst=$(grep -A 3 "^$1\$" $PACKAGES_REPOSITORY/packages.txt | grep installed)
   1.142 +		inst=$(grep -A 3 "^$1\$" $pkgslist | grep installed)
   1.143  #		size=$(echo $inst | cut -d'(' -f2 | cut -d' ' -f1)
   1.144  		echo $inst | sed 's/.*(\(.*\).*/(\1)/'
   1.145  #		echo $size
   1.146 @@ -673,8 +685,8 @@
   1.147  <h3>$(eval_gettext "These packages may overload files of \$SEARCH")</h3>
   1.148  <pre>
   1.149  _EOT_
   1.150 -		( unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep ^$SEARCH: ;
   1.151 -		  unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep -v ^$SEARCH: ) | awk '
   1.152 +		( unlzma -c $filelist | grep ^$SEARCH: ;
   1.153 +		  unlzma -c $filelist | grep -v ^$SEARCH: ) | awk '
   1.154  BEGIN { pkg=""; last="x" }
   1.155  {
   1.156  	if ($2 == "") next
   1.157 @@ -702,7 +714,7 @@
   1.158  <table>
   1.159  _EOT_
   1.160  		last=""
   1.161 -		unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
   1.162 +		unlzma -c $filelist \
   1.163  		| grep "$SEARCH" | while read pkg file; do
   1.164  			echo "$file" | grep -q "$SEARCH" || continue
   1.165  			if [ "$last" != "${pkg%:}" ]; then
   1.166 @@ -739,17 +751,17 @@
   1.167  <pre>
   1.168  _EOT_
   1.169  		last=""
   1.170 -		unlzma -c $PACKAGES_REPOSITORY/files.list.lzma \
   1.171 +		unlzma -c $filelist \
   1.172  		| grep ^$SEARCH: | sed 's/.*: /    /' | sort
   1.173  		cat << _EOT_
   1.174  </pre>
   1.175  <pre>
   1.176  _EOT_
   1.177 -		filenb=$(unlzma -c $PACKAGES_REPOSITORY/files.list.lzma | grep ^$SEARCH: | wc -l)
   1.178 +		filenb=$(unlzma -c $filelist | grep ^$SEARCH: | wc -l)
   1.179  		eval_ngettext "\$filenb file" "\$filenb files" $filenb
   1.180  		cat << _EOT_
   1.181    \
   1.182 -$(busybox sed -n "/^$SEARCH$/{nnnpq}" $PACKAGES_REPOSITORY/packages.txt)
   1.183 +$(busybox sed -n "/^$SEARCH$/{nnnpq}" $pkglist)
   1.184  </pre>
   1.185  _EOT_
   1.186  	fi
   1.187 @@ -869,7 +881,6 @@
   1.188  $(package_entry)$DESC
   1.189  _EOT_
   1.190  		done
   1.191 -		equiv=$PACKAGES_REPOSITORY/packages.equiv
   1.192  		vpkgs="$(cat $equiv | cut -d= -f1 | grep $SEARCH)"
   1.193  		for vpkg in $vpkgs ; do
   1.194  			cat << _EOT_