X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=index.cgi;h=861a141a02bd58c077747dbc23a16b5465a057ec;hb=a1fda7a75f29a5d07c056c1dc26c7b3d80a9453e;hp=da4cb5cc43c658a32573d06b1f7cd09d46bb9686;hpb=3acf9646adcadee2617b2665c6b0281346915fe8;p=vpaste diff --git a/index.cgi b/index.cgi index da4cb5c..861a141 100755 --- a/index.cgi +++ b/index.cgi @@ -47,7 +47,13 @@ function cut_file { # Print out a generic header function header { echo "Content-Type: $1; charset=UTF-8" - echo + if [[ "$HTTP_ACCEPT_ENCODING" == *'gzip'* ]]; then + echo "Content-Encoding: gzip" + echo + exec 1> >(gzip) + else + echo + fi } # Print plain message and exit @@ -64,17 +70,31 @@ function message { function do_cmd { header text/plain case "$1" in - head) - for i in $(ls -t db/*); do - basename $i - basename $i | sed 's/./-/g' - sed '1,/^$/d; /^\s*$/d' $i | sed -n '1,5s/\(.\{0,60\}\).*/\1/p' - echo - done - ;; ls) ls -t db | column ;; + head) + awk -v 'rows=4' -v 'cols=60' ' + FNR==1 { gsub(/.*\//, "", FILENAME); + print FILENAME + print "-----" } + FNR==1,/^$/ { next } + /\S/ { i++; printf "%."cols"s\n", $0 } + i>=rows { nextfile } + ENDFILE { i=0; print "" } + ' $(ls -t db/*) + ;; + stat) + ls -l --time-style='+%Y %m' db | + awk -v 'hdr=Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec' ' + BEGIN { printf "%64s\n", hdr } + NR>1 { cnt[$6+0][$7+0]++ } + END { for (y in cnt) { + printf "%4d", y + for (m=1; m<=12; m++) + printf "%5s", cnt[y][m] + printf "\n" } }' + ;; esac } @@ -289,8 +309,8 @@ function do_help {

License

Copyright © 2009-2012 - Andy spencer <andy753421@gmail.com>

-

See individual files for license

+ Andy Spencer <andy753421@gmail.com>

+

See individual files for licenses

Source code

list all

sample all

+

statistics

@@ -339,6 +360,8 @@ if [ "$pathinfo" = ls ]; then do_cmd ls elif [ "$pathinfo" = head ]; then do_cmd head +elif [ "$pathinfo" = stat ]; then + do_cmd stat elif [ "$pathinfo" ]; then do_print "$pathinfo" elif [ "$CONTENT_TYPE" ]; then