From: Michael Tremer Date: Thu, 3 Jun 2010 19:24:08 +0000 (+0200) Subject: less: Add all the nice features to less we usually have. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e59ed132285782c4edb40a55ca67a32e72df5bd7;p=ipfire-3.x.git less: Add all the nice features to less we usually have. Add lesspipe.sh with profile configuration. Remove --with-secure which disables important features. --- diff --git a/pkgs/core/less/less.nm b/pkgs/core/less/less.nm index b17d8ce54..103472326 100644 --- a/pkgs/core/less/less.nm +++ b/pkgs/core/less/less.nm @@ -46,4 +46,14 @@ endef PKG_TARBALL = $(THISAPP).tar.gz -CONFIGURE_OPTIONS += --with-secure --with-regex=pcre +CONFIGURE_OPTIONS += --sysconfdir=/etc --with-regex=pcre + +CFLAGS += -D_GNU_SOURCE + +define STAGE_INSTALL_CMDS + -mkdir -pv $(BUILDROOT)/etc/profile.d + install -v -m 755 $(DIR_SOURCE)/less.sh $(BUILDROOT)/etc/profile.d + + -mkdir -pv $(BUILDROOT)/usr/bin + install -v -m 755 $(DIR_SOURCE)/lesspipe.sh $(BUILDROOT)/usr/bin +endef diff --git a/pkgs/core/less/less.sh b/pkgs/core/less/less.sh new file mode 100644 index 000000000..a7569fb65 --- /dev/null +++ b/pkgs/core/less/less.sh @@ -0,0 +1,2 @@ +# less initialization script (sh) +[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="|/usr/bin/lesspipe.sh %s" diff --git a/pkgs/core/less/lesspipe.sh b/pkgs/core/less/lesspipe.sh new file mode 100644 index 000000000..3d6750546 --- /dev/null +++ b/pkgs/core/less/lesspipe.sh @@ -0,0 +1,59 @@ +#!/bin/sh +# +# To use this filter with less, define LESSOPEN: +# export LESSOPEN="|/usr/bin/lesspipe.sh %s" + +lesspipe() { + case "$1" in + *.[1-9n]|*.man|*.[1-9n].bz2|*.man.bz2|*.[1-9].gz|*.[1-9]x.gz|*.man.gz|*.[1-9].xz|*.[1-9]x.xz|*.man.xz) + case "$1" in + *.gz) DECOMPRESSOR="gunzip -c" ;; + *.bz2) DECOMPRESSOR="bunzip2 -c" ;; + *) DECOMPRESSOR="cat" ;; + esac + if $DECOMPRESSOR -- "$1" | file - | grep -q troff; then + if echo "$1" | grep -q ^/; then #absolute path + man -- "$1" | cat -s + else + man -- "./$1" | cat -s + fi + else + $DECOMPRESSOR -- "$1" + fi ;; + *.tar) tar tvvf "$1" ;; + *.tgz|*.tar.gz|*.tar.[zZ]) tar tzvvf "$1" ;; + *.tar.xz) tar Jtvvf "$1" ;; + *.xz) xz -dc -- "$1" ;; + *.tar.bz2|*.tbz2) bzip2 -dc -- "$1" | tar tvvf - ;; + *.[zZ]|*.gz) gzip -dc -- "$1" ;; + *.bz2) bzip2 -dc -- "$1" ;; + *.lzma) lzma -c -d -- "$1" ;; + *.zip|*.jar|*.nbm) zipinfo -- "$1" ;; + *.rpm) rpm -qpivl --changelog -- "$1" ;; + *.cpi|*.cpio) cpio -itv < "$1" ;; + *.gif|*.jpeg|*.jpg|*.pcd|*.png|*.tga|*.tiff|*.tif) + if [ -x /usr/bin/identify ]; then + identify "$1" + elif [ -x /usr/bin/gm ]; then + gm identify "$1" + else + echo "No identify available" + echo "Install ImageMagick or GraphicsMagick to browse images" + fi ;; + *) + case "$1" in + *.gz) DECOMPRESSOR="gunzip -c" ;; + *.bz2) DECOMPRESSOR="bunzip2 -c" ;; + *.xz) DECOMPRESSOR="unxz -c" ;; + esac + if [ ! -z $DECOMPRESSOR ] ; then + $DECOMPRESSOR -- "$1" ; + fi + esac +} + +if [ -d "$1" ] ; then + /bin/ls -alF -- "$1" +else + lesspipe "$1" 2> /dev/null +fi