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_