diff --git a/debian/changelog b/debian/changelog index 89fc29e..20cecf2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +debian-goodies (0.31) unstable; urgency=low + + * Introduce the debmany script written by Michael Arlt (it was actually in + the sources of 0.30 but not installed in the binary package) + + -- Javier Fernandez-Sanguino Pen~a Mon, 27 Aug 2007 19:05:46 +0200 + debian-goodies (0.30) unstable; urgency=low * checkrestart changes: diff --git a/debian/rules b/debian/rules index e558ff5..119fa10 100755 --- a/debian/rules +++ b/debian/rules @@ -43,6 +43,8 @@ for grepname in dzgrep degrep dfgrep; do \ ln -s dgrep $(CURDIR)/debian/debian-goodies/usr/bin/$$grepname; \ done + install -m 755 debmany/debmany \ + $(CURDIR)/debian/debian-goodies/usr/sbin # Build architecture-dependent files here. # We have nothing to do by default. @@ -52,26 +54,16 @@ binary-indep: build install dh_testdir dh_testroot -# dh_installdebconf dh_installdocs README -# dh_installexamples -# dh_installmenu -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron dh_installman debget.1 debman.1 dglob.1 dgrep.1 dpigs.1 popbugs.1 \ - which-pkg-broke.1 network-test.1 checkrestart.1 -# dh_installinfo + which-pkg-broke.1 network-test.1 checkrestart.1 \ + debmany/man/debmany.1 debmany/man/debmany.de.1 # dh_undocumented dh_installchangelogs dh_link dh_compress dh_fixperms dh_installdeb -# dh_perl dh_gencontrol dh_md5sums dh_builddeb diff --git a/debmany/bash_completion b/debmany/bash_completion index cb110fd..970b12b 100644 --- a/debmany/bash_completion +++ b/debmany/bash_completion @@ -9,29 +9,39 @@ cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} - if [[ "$prev" == -m ]]; then - case "${cur:0:1}" in - \"|\') local manpageviewer="${cur:1}";; - *) local manpageviewer="$cur";; - esac - COMP_WORDS=(COMP_WORDS[0] $manpageviewer) - COMP_CWORD=1 - _command - # not perfect: '-m "konquer /dev/null; ) ) - [ ${#COMPREPLY[@]} -eq 0 ] && _filedir deb - fi - fi + case "$prev" in + -L) if [[ "$cur" != "" && "${cur//[0-9]/}" == "" ]] + then + COMPREPLY=( K M G T ) + fi + # not perfect - 10M and the cursor sticks on the M but should paste a " " + return;; + -l) COMPREPLY=( $( ls /usr/share/man 2>/dev/null | cut -f1 -d'.' | grep -v ^man | sort -u ) );; + -m) + case "${cur:0:1}" in + \"|\') local manpageviewer="${cur:1}";; + *) local manpageviewer="$cur";; + esac + COMP_WORDS=(COMP_WORDS[0] $manpageviewer) + COMP_CWORD=1 + _command + # not perfect: '-m "konquer /dev/null; ) ) + [ ${#COMPREPLY[@]} -eq 0 ] && _filedir deb + fi + ;; + esac return 0 } && diff --git a/debmany/debmany b/debmany/debmany index 6b1ccfa..45e2980 100755 --- a/debmany/debmany +++ b/debmany/debmany @@ -1,4 +1,4 @@ -#!/bin/bassh +#!/bin/bash # script: debmany # author: Michael Arlt # description: select the manpages of any [not] installed debian package @@ -12,7 +12,6 @@ # choose the manpageviewer mancmdline="man %s" # default manpageviewer -test -n "$DEBMANY_MANPAGE_VIEWER" && mancmdline="$DEBMANY_MANPAGE_VIEWER" # override default manpageviewer curdir=`pwd` @@ -25,27 +24,28 @@ usage() { - self="${0##*/}" - echo "debmany 1.1 Sun Aug 19 20:11:48 CEST 2007 + echo "debmany 1.2 Sat Aug 25 22:38:17 CEST 2007 Description: Display a manpage from a Debian package. The list of manpages is displayed in a dialog. Supported locations for debian packages are: Local .deb-file, a package in the repository or a installed package. -Syntax : $self [-?|-h|--help] [-m manpageviewer|-k|-g|-x] package|package.deb - -Examples: $self foo.deb show manpages from a local package file foo.deb - $self foo show manpages from a package, if the package is - not installed it is retrieved from the - configured repositories. - $self -k foo show manpages using your preferred man-viewer - (KDE users) - $self -g foo show manpages using your preferred man-viewer - (GNOME users) - $self -x foo show manpages using your preferred man-viewer - using xdg-open (Xfce users) - $self -m 'konqueror man:%s' foo - show manpages using konqueror as man-viewer - export DEBMANY_MANPAGE_VIEWER='konqueror man:%s'; $self sc" +Syntax1 : debmany [-?|-h|--help] +Syntax2 : debmany [-m viewer|-k|-g|-x] [-L limit] [-l lang1[,...]] package[.deb] +Examples: debmany foo.deb show manpages from a local package file foo.deb + debmany foo show manpages from a package, if the package is + not installed it is retrieved from the + configured repositories. + debmany -k foo show manpages using your preferred man-viewer (KDE) + debmany -g foo show manpages using your preferred man-viewer (GNOME) + debmany -x foo show manpages using your preferred man-viewer + using xdg-open from xdg-utils package (Xfce users) + debmany -m 'konqueror man:%s' -l de,fr -L 5M foo + show english, german and french manpages using + konqueror as man-viewer and ask if download size + exceeds 5M + alias debmany='debmany -l de -L 5M -k'; debmany -m man -l "*" foo + set an alias with your preferred options and + overwrite them if needed" if [ $# -eq 0 ] then exit 0 @@ -54,27 +54,32 @@ fi } -case "$1" in +while [ $# -gt 0 ] +do + case $1 in "-?"|-h|--help) usage ;; - -m) shift - # override default manpageviewer or environment variable DEBMANY_MAN_VIEWER + -m) # override default manpageviewer or environment variable DEBMANY_MAN_VIEWER + shift mancmd=($1) # get first word from manpageviewer if which $mancmd >/dev/null 2>&1 # is the manpageviewer executeable? then - mancmdline="$1" - shift + echo $1 | grep -q "%s" && mancmdline="$1" || mancmdline="$1 %s" else usage "Manpageviewer '$mancmd' is not available or executable" fi ;; - -k) shift; mancmdline='kfmclient exec man:%s';; # set kde viewer - -g) shift; mancmdline='gnome-open man:%s';; # set gnome viewer - -x) shift; mancmdline='xdg-open man:%s';; # set independant viewer - -*) usage "Unknown option $1" - ;; -esac - -test $# -ne 1 && usage "You must specify one package or a Debian package file" + -k) mancmdline='kfmclient exec man:%s';; # set kde viewer + -g) mancmdline='gnome-open man:%s';; # set gnome viewer + -x) mancmdline='xdg-open man:%s';; # set independant viewer + -l) shift; lang=$1;; # remember language + -L) shift; asksize=$1;; # remember asksize + -*) usage "Unknown option '$1'.";; + *) package="$1";; + esac + shift +done + +test -z "$package" && usage "You must specify one package or a Debian package file." # determine the size of your terminal declare -i size=(`stty size`) @@ -101,34 +106,44 @@ y=y-1 # height of the dialog declare -i h=y-7 # height of the menu -if [ "${1##*.}" = "deb" ] +if [ "${package##*.}" = "deb" ] then # mode1: you want to see manpages from a .deb-file - if [ -r "$1" ] ; then - file=`readlink -f "$1"` - status=file + if [ -r "$package" ] + then + file=`readlink -f "$package"` + status=file else - error "The file $1 cannot be read" + error "The file $package cannot be read." fi else # mode 2: test if you have the package already installed - for man in `dpkg -L "$1" 2>/dev/null | grep -e /usr/share/man -e /usr/X11R6/man|sort` - do - # mode 2: add the manpages to the list - test -f $man && manpages="$manpages $man ${man##*/}" - done -fi - -# TODO: If there is a locally installed package with no manpages -# it will try to download a new version. This could be considered -# a bug or a feature (as there are slim chances of this to -# provide any new manpages). Maybe it should just abort if the -# packaged is installed but there are no manpages to see. -if [ -n "$manpages" ] + if dpkg -l "$package" 2>/dev/null | grep -q ^i + then + status=installed + set -f + # modify lang for grep regular expressions: fr -> fr\.* (-> fr+fr.ISO8859-1+"fr."...) + langgrep=`echo $lang|sed -e s/*/.*/g -e 's/\([a-zA-Z_][a-zA-Z_]*\)/\1,\1\\\\\\.*/'` + # create the list of all mandirs (with -e for grep) (X11R6 is only for sarge - didn't find it in etch anymore) + mandirs="`eval echo \\"-e \\"/usr/\{share,X11R6\}/man/man.*/ \\"-e \\"/usr/\{share,X11R6\}/man/\{$langgrep,XYZZXY\}/`" + for man in `dpkg -L "$package" 2>/dev/null|grep $mandirs|sort` + do + # mode 2: add the manpages to the list + test -f $man && manpages="$manpages $man ${man##*/}" + done + set +f + fi +fi + +# choose whiptail or dialog +whiptail=/usr/bin/whiptail +dialog=/usr/bin/dialog +test -x $whiptail && cmd=$whiptail || cmd=$dialog + +if [ "$status" = "installed" ] then # mode 2 cd / - status=installed else # mode 1 and 3 trap 'test -n "$temp" && rm -rf $temp; exit' 0 2 15 # cleanup @@ -142,10 +157,10 @@ if [ -z "$file" ] then # mode 3: find the package.deb - aptdata=`apt-get -q2 --print-uris --reinstall install "$1" 2>/dev/null | tail -1` + aptdata=`apt-get -q2 --print-uris --reinstall install "$package" 2>/dev/null | tail -1` if [ -z "$aptdata" ] then - error "There is no package called '$1'." + error "There is no package called '$package'." exit 1 fi @@ -164,30 +179,75 @@ else # mode 3: download the local file file="$temp/tmp.deb" + # if i should ask at a specific size + if [ "$asksize" != "" ] + then + # determine the size of the file to download (*10 for 10,5M) + declare -i size=`apt-cache show "$package"|grep ^"Size: "|cut -f2 -d" "|head -1`*10 + # determine the value of ask_size + templimit=`echo ${asksize//[^0-9]/}` + test "$templimit" = "" && error "Parameter -L needs an argument - e.g. '10M'." + declare -i limit=`echo ${asksize//[^0-9]/}`*10 + # determine the unit of ask_size + unit=`echo ${asksize//[0-9]/}` + # calculate the limit according to unit from DEBMANY_ASK_SIZE + case $unit in + B|"") ;; + K) limit=limit*1024;; + M) limit=limit*1024*1024;; + G) limit=limit*1024*1024*1024;; + T) limit=limit*1024*1024*1024*1024;; + *) error "Invalid unit '$unit' in variable DEBMANY_ASK_SIZE." + esac + # calculate the human readable size and ask for download if size exceeds limit + if [ $size -ge $limit ] + then + unit=B + # reduce the size and correct the unit until it is human readable + while [ $size -gt 1024 ] + do + size=size/1024 + case $unit in + G) unit=T;; + M) unit=G;; + K) unit=M;; + B) unit=K;; + esac + done + # set the comma (so if the file has a size of 50M we change 500 to 50,0M + commasize=`echo $size|sed "s/\([0-9]*\)\([0-9]\)/\1,\2/"`$unit + # ask if the download may start - otherwise debmany exits + if ! $cmd --yesno "Would you like to download the package with a size of $commasize?" 9 40 + then + echo "Download undesired - $commasize is too big." + exit + fi + fi + fi curl "$url" >"$file" || error "Could not download '$file' from the repository." status=repos-curl fi fi cd $temp # extract the manpages - MANDIRS='usr/share/man usr/X11R6/man ./usr/share/man ./usr/X11R6/man' - dpkg --fsys-tarfile "$file" | tar -xf - $MANDIRS 2>/dev/null + set -f + # modify lang for pathname expansion: fr -> fr.* (-> fr+fr.ISO8859-1+"fr."...) + lang=`echo $lang|sed -e 's/\([a-zA-Z_][a-zA-Z_]*\)/\1,\1*/'` + # create the list of all mandirs (X11R6 is only for sarge - didn't find it in etch anymore) + mandirs="`eval echo \{./,\}usr/\{share,X11R6\}/man/man*/ \{./,\}usr/\{share,X11R6\}/man/\{$lang,XYZZXY\}/`" + dpkg --fsys-tarfile "$file" | tar --wildcards -xf - $mandirs 2>/dev/null + set +f manpages=`find usr -type f|sort|sed -e 's§\([^/]*\)$§\1 \1§'` fi - -# choose whiptail or dialog -whiptail=/usr/bin/whiptail -dialog=/usr/bin/dialog -test -x $whiptail && cmd=$whiptail || cmd=$dialog while true do # test if manpages where found - test -z "$manpages" && error "No manpage exists for package '$1'." + test -z "$manpages" && error "No manpage exists for package '$package'." # select your manpages using dialog exec 3>&1 - return=`$cmd --title "Select a manpage ($status:$1)" --menu '' $y $x $h $manpages 2>&1 1>&3` + return=`$cmd --title "Select a manpage ($status:$package)" --menu '' $y $x $h $manpages 2>&1 1>&3` exec 3>&- if [ -n "$return" ] then diff --git a/debmany/man/de/man1/debmany.1 b/debmany/man/de/man1/debmany.1 deleted file mode 100644 index c2ce301..0000000 --- a/debmany/man/de/man1/debmany.1 +++ /dev/null @@ -1,64 +0,0 @@ -.TH "DEBMANY" "1" "1.1" "Michael Arlt" "Dienstprogramme für Benutzer" -.SH "NAME" -debmany \- Wählen von manpages aus installierten Paketen, Paketen des Repositories oder .deb\-Dateien zum Betrachten mit "man" oder einem alternativen Viewer. -.SH "SYNTAX" -.B debmany -\fI\-\-help -.br -.B debmany -\fI[\-m manpageviewer|\-k|\-g|\-x] Paket|Paket.deb\fR -.SH "BESCHREIBUNG" -.\" Add any additional description here -.PP -Wählen Sie eine Manpage von einem Debian Paket um sie mit "man" oder einem alternativen Viewer zu betrachten. Die Liste der Manpages wird in einem Dialog dargestellt. Unterstützte Quellen für Debian Pakete sind: Lokale .deb\-Datei, ein Paket aus dem Repository oder ein installiertes Paket. -.TP -\fB\-\-help\fR -zeigt eine kurze Hilfe und beendet sich -.TP -\fB\-m manpageviewer\fR -Setzt optional den Manpageviewer. Der Viewer muss .gz Dateien unterstützen. Durch die Umgebungsvariable DEBMANY_MANPAGE_VIEWER kann der gewünschte Manpageviewer voreingestellt werden. Hierbei ist zu beachten, dass der komplette Aufruf formuliert werden muss. "%s" wird durch den Pfad zur Manpage ersetzt. Der Aufruf muss in "" oder '' gefasst werden \- siehe Beispiele. -Bei der Benutzung eines grafischen Manpageviewers müssen Sie sicherstellen, dass Sie Zugriff auf den Desktop haben (ggf.: sux oder ssh mit x\-forwarding) -.TP -\fB\-k\fR -Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE benutzen \- Kurzform von \-m 'kfmclient exec man:%s'. "kfmclient" ist Teil des Paketes "konqueror". -.TP -\fB\-g\fR -Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie GNOME benutzen \- Kurzform von \-m 'gnome\-open man:%s'. "gnome\-open" ist Teil des Paketes "libgnome2\-0". -.TP -\fB\-x\fR -Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE/GNOME/Xfce benutzen \- Kurzform von \-m 'xdg\-open man:%s'. "xdg\-open" ist Teil des Paketes "xdg\-utils". -.PP -Die Manpages werden temporär nach /dev/shm (sofern dieses Verzeichnis existiert) oder /tmp extrahiert. Durch das Setzen und Exportieren der Umgebungsvariable TMPDIR kann der Speicherort überschrieben werden. -.PP -Das Debian Paket "whiptail" (bevorzugt) oder "dialog" sowie "curl" muss installiert sein. -.SH "BEISPIELE" -.TP -debmany coreutils -Zeigt alle Manpages des installierten Debian Pakets "coreutils" mit "man" an. -.TP -debmany 3dchess -Zeigt alle Manpages des Paketes "3dchess" mit "man" an. Da es noch nicht installiert ist wird es vom Repository bezogen \- wenn nötig auch per Download. -.TP -debmany test.deb -Zeigt alle Manpages des lokalen Debian Paketes "./test.deb" mit "man" an. -.TP -debmany \-k sc -Benutzt den bevorzugten Manviewer (für KDE Anwender) -.TP -debmany \-g sc -Benutzt den bevorzugten Manviewer (für GNOME Anwender) -.TP -debmany \-x sc -Benutzt den bevorzugten Manviewer (für KDE/GNOME/Xfce Anwender) -.TP -debmany \-m 'konqueror man:%s' sc -Benutzt Konqueror als Viewer -.TP -export DEBMANY_MANPAGE_VIEWER="konqueror man:%s"; debmany sc -Benutzt den in der Umgebungsvariable DEBMANY_MANPAGE_VIEWER festgelegten Viewer (konqueror) -.SH "AUTOR" -Geschrieben von Michael Arlt. -.SH "LIZENZ" -This is free software. You may redistribute copies of it under the terms of -the GNU General Public License . -There is NO WARRANTY, to the extent permitted by law. diff --git a/debmany/man/debmany.1 b/debmany/man/debmany.1 new file mode 100644 index 0000000..a9d5020 --- /dev/null +++ b/debmany/man/debmany.1 @@ -0,0 +1,64 @@ +.TH "DEBMANY" "1" "1.1" "Michael Arlt" "User Commands" +.SH "NAME" +debmany \- select manpages from installed packages, packages from the repository or .deb\-files for viewing using "man" or an alternative viewer. +.SH "SYNOPSIS" +.B debmany +\fI\-\-help +.br +.B debmany +\fI[\-m manpageviewer|\-k|\-g|\-x] package|package.deb\fR +.SH "DESCRIPTION" +.\" Add any additional description here +.PP +Select a manpage from a debian package for viewing with man or an alternative viewer. The list of manpages is displayed in a dialog. Supported locations for debian packages are: Local .deb\-file, a package in the repository or a installed package. +.TP +\fB\-\-help\fR +display a small help and exit +.TP +\fB\-m manpageviewer\fR +Optionally set a manpage viewer. The viewer must support .gz files. You can preset the desired manpage viewer with the environment variable DEBMANY_MANPAGE_VIEWER. You must define the complete request. "%s" gets replaced with the path to the manpage. The manpageviewer must be enclosed with "" or '' \- see examples. +If you use a graphical viewer you must ensure that you have access to your desktop (if necessary: sux or ssh with x\-forwarding) +.TP +\fB\-k\fR +Display the manpage using your preferred viewer (must support .gz files) if you use KDE \- this is the short form of \-m 'kfmclient exec man:%s'. "kfmclient" is a part of the package "konqueror". +.TP +\fB\-g\fR +Display the manpage using your preferred viewer (must support .gz files) if you use GNOME \- this is the short form of \-m 'gnome\-open man:%s'. "gnome\-open" is a part of the package "libgnome2\-0". +.TP +\fB\-x\fR +Display the manpage using your preferred viewer (must support .gz files) if you use KDE/GNOME/Xfce \- this is the short form of \-m 'xdg\-open man:%s'. "xdg\-open" is a part of the package "xdg\-utils". +.PP +The manpages are temporarily extracted to /dev/shm (if the directory exists) or /tmp . You can override the path if you set and export the environment variable TMPDIR. +.PP +You need to have the debian package "whiptail" (preferred) or "dialog" as well as "curl" installed. +.SH "EXAMPLES" +.TP +debmany coreutils +Show all manpages from the installed debian package "coreutils" using man. +.TP +debmany 3dchess +Show all manpages from the package "3dchess" using man. Since it is not already installed the package is accessed from the repository \- even downloading is done if needed. +.TP +debmany test.deb +Show all manpages from the local debian package "./test.deb" using man. +.TP +debmany \-k sc +Use your preferred man\-viewer (for KDE user) +.TP +debmany \-g sc +Use your preferred man\-viewer (for GNOME user) +.TP +debmany \-x sc +Use your preferred man\-viewer (for KDE/GNOME/Xfce user) +.TP +debmany \-m 'konqueror man:%s' sc +Use Konqueror as viewer +.TP +export DEBMANY_MANPAGE_VIEWER="konqueror man:%s"; debmany sc +Use the viewer specified in the environment variable DEBMANY_MANPAGE_VIEWER (konqueror) +.SH "AUTHOR" +Written by Michael Arlt. +.SH "LICENSE" +This is free software. You may redistribute copies of it under the terms of +the GNU General Public License . +There is NO WARRANTY, to the extent permitted by law. diff --git a/debmany/man/debmany.de.1 b/debmany/man/debmany.de.1 new file mode 100644 index 0000000..c2ce301 --- /dev/null +++ b/debmany/man/debmany.de.1 @@ -0,0 +1,64 @@ +.TH "DEBMANY" "1" "1.1" "Michael Arlt" "Dienstprogramme für Benutzer" +.SH "NAME" +debmany \- Wählen von manpages aus installierten Paketen, Paketen des Repositories oder .deb\-Dateien zum Betrachten mit "man" oder einem alternativen Viewer. +.SH "SYNTAX" +.B debmany +\fI\-\-help +.br +.B debmany +\fI[\-m manpageviewer|\-k|\-g|\-x] Paket|Paket.deb\fR +.SH "BESCHREIBUNG" +.\" Add any additional description here +.PP +Wählen Sie eine Manpage von einem Debian Paket um sie mit "man" oder einem alternativen Viewer zu betrachten. Die Liste der Manpages wird in einem Dialog dargestellt. Unterstützte Quellen für Debian Pakete sind: Lokale .deb\-Datei, ein Paket aus dem Repository oder ein installiertes Paket. +.TP +\fB\-\-help\fR +zeigt eine kurze Hilfe und beendet sich +.TP +\fB\-m manpageviewer\fR +Setzt optional den Manpageviewer. Der Viewer muss .gz Dateien unterstützen. Durch die Umgebungsvariable DEBMANY_MANPAGE_VIEWER kann der gewünschte Manpageviewer voreingestellt werden. Hierbei ist zu beachten, dass der komplette Aufruf formuliert werden muss. "%s" wird durch den Pfad zur Manpage ersetzt. Der Aufruf muss in "" oder '' gefasst werden \- siehe Beispiele. +Bei der Benutzung eines grafischen Manpageviewers müssen Sie sicherstellen, dass Sie Zugriff auf den Desktop haben (ggf.: sux oder ssh mit x\-forwarding) +.TP +\fB\-k\fR +Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE benutzen \- Kurzform von \-m 'kfmclient exec man:%s'. "kfmclient" ist Teil des Paketes "konqueror". +.TP +\fB\-g\fR +Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie GNOME benutzen \- Kurzform von \-m 'gnome\-open man:%s'. "gnome\-open" ist Teil des Paketes "libgnome2\-0". +.TP +\fB\-x\fR +Zeigt die Manpage im bevorzugten Viewer (muss .gz Dateien unterstützen) an, falls Sie KDE/GNOME/Xfce benutzen \- Kurzform von \-m 'xdg\-open man:%s'. "xdg\-open" ist Teil des Paketes "xdg\-utils". +.PP +Die Manpages werden temporär nach /dev/shm (sofern dieses Verzeichnis existiert) oder /tmp extrahiert. Durch das Setzen und Exportieren der Umgebungsvariable TMPDIR kann der Speicherort überschrieben werden. +.PP +Das Debian Paket "whiptail" (bevorzugt) oder "dialog" sowie "curl" muss installiert sein. +.SH "BEISPIELE" +.TP +debmany coreutils +Zeigt alle Manpages des installierten Debian Pakets "coreutils" mit "man" an. +.TP +debmany 3dchess +Zeigt alle Manpages des Paketes "3dchess" mit "man" an. Da es noch nicht installiert ist wird es vom Repository bezogen \- wenn nötig auch per Download. +.TP +debmany test.deb +Zeigt alle Manpages des lokalen Debian Paketes "./test.deb" mit "man" an. +.TP +debmany \-k sc +Benutzt den bevorzugten Manviewer (für KDE Anwender) +.TP +debmany \-g sc +Benutzt den bevorzugten Manviewer (für GNOME Anwender) +.TP +debmany \-x sc +Benutzt den bevorzugten Manviewer (für KDE/GNOME/Xfce Anwender) +.TP +debmany \-m 'konqueror man:%s' sc +Benutzt Konqueror als Viewer +.TP +export DEBMANY_MANPAGE_VIEWER="konqueror man:%s"; debmany sc +Benutzt den in der Umgebungsvariable DEBMANY_MANPAGE_VIEWER festgelegten Viewer (konqueror) +.SH "AUTOR" +Geschrieben von Michael Arlt. +.SH "LIZENZ" +This is free software. You may redistribute copies of it under the terms of +the GNU General Public License . +There is NO WARRANTY, to the extent permitted by law. diff --git a/debmany/man/man1/debmany.1 b/debmany/man/man1/debmany.1 deleted file mode 100644 index a9d5020..0000000 --- a/debmany/man/man1/debmany.1 +++ /dev/null @@ -1,64 +0,0 @@ -.TH "DEBMANY" "1" "1.1" "Michael Arlt" "User Commands" -.SH "NAME" -debmany \- select manpages from installed packages, packages from the repository or .deb\-files for viewing using "man" or an alternative viewer. -.SH "SYNOPSIS" -.B debmany -\fI\-\-help -.br -.B debmany -\fI[\-m manpageviewer|\-k|\-g|\-x] package|package.deb\fR -.SH "DESCRIPTION" -.\" Add any additional description here -.PP -Select a manpage from a debian package for viewing with man or an alternative viewer. The list of manpages is displayed in a dialog. Supported locations for debian packages are: Local .deb\-file, a package in the repository or a installed package. -.TP -\fB\-\-help\fR -display a small help and exit -.TP -\fB\-m manpageviewer\fR -Optionally set a manpage viewer. The viewer must support .gz files. You can preset the desired manpage viewer with the environment variable DEBMANY_MANPAGE_VIEWER. You must define the complete request. "%s" gets replaced with the path to the manpage. The manpageviewer must be enclosed with "" or '' \- see examples. -If you use a graphical viewer you must ensure that you have access to your desktop (if necessary: sux or ssh with x\-forwarding) -.TP -\fB\-k\fR -Display the manpage using your preferred viewer (must support .gz files) if you use KDE \- this is the short form of \-m 'kfmclient exec man:%s'. "kfmclient" is a part of the package "konqueror". -.TP -\fB\-g\fR -Display the manpage using your preferred viewer (must support .gz files) if you use GNOME \- this is the short form of \-m 'gnome\-open man:%s'. "gnome\-open" is a part of the package "libgnome2\-0". -.TP -\fB\-x\fR -Display the manpage using your preferred viewer (must support .gz files) if you use KDE/GNOME/Xfce \- this is the short form of \-m 'xdg\-open man:%s'. "xdg\-open" is a part of the package "xdg\-utils". -.PP -The manpages are temporarily extracted to /dev/shm (if the directory exists) or /tmp . You can override the path if you set and export the environment variable TMPDIR. -.PP -You need to have the debian package "whiptail" (preferred) or "dialog" as well as "curl" installed. -.SH "EXAMPLES" -.TP -debmany coreutils -Show all manpages from the installed debian package "coreutils" using man. -.TP -debmany 3dchess -Show all manpages from the package "3dchess" using man. Since it is not already installed the package is accessed from the repository \- even downloading is done if needed. -.TP -debmany test.deb -Show all manpages from the local debian package "./test.deb" using man. -.TP -debmany \-k sc -Use your preferred man\-viewer (for KDE user) -.TP -debmany \-g sc -Use your preferred man\-viewer (for GNOME user) -.TP -debmany \-x sc -Use your preferred man\-viewer (for KDE/GNOME/Xfce user) -.TP -debmany \-m 'konqueror man:%s' sc -Use Konqueror as viewer -.TP -export DEBMANY_MANPAGE_VIEWER="konqueror man:%s"; debmany sc -Use the viewer specified in the environment variable DEBMANY_MANPAGE_VIEWER (konqueror) -.SH "AUTHOR" -Written by Michael Arlt. -.SH "LICENSE" -This is free software. You may redistribute copies of it under the terms of -the GNU General Public License . -There is NO WARRANTY, to the extent permitted by law. diff --git a/debmany/readme b/debmany/readme index 81f0f1a..d6f6cf5 100644 --- a/debmany/readme +++ b/debmany/readme @@ -1,7 +1,7 @@ copy bash_completion to ~/.bash_completion it uses functions from /etc/bash_completion completion is done for - parameters (-m is not handled very good), + parameters (-m is not handled very good and -l could be improved, too), packages, filenames ending with .deb and folders