linux-l: LM01/01: lesspipe.sh

Michael Wiedmann mw at miwie.in-berlin.de
So Dez 17 13:18:10 CET 2000


Die Versuchung war groß, das im LM 01/2001 vorgestellte "lesspipe.sh"
(siehe Artikel: Bessere Sicht; Mehr betrachten mit less; S.172ff) so 
zu erweitern, dass auch Debian-Archive bahandelt werden können.

Das einfache Auflisten des Archiv-Inhaltes bereitet keine
Schwierigkeiten und wird durch den zweiten Teil des anhängenden
Diffs abgehandelt (gegenüber lesspipe.sh das bei
http://www.ifh.de/~friebel/unix/lesspipe.html zu finden ist).

Mehr Schwierigkeiten bereitet die Erweiterung, Dateien aus einem Archiv
zu extrahieren und anzuzeigen (z.B.: less debian-file.deb:filename).

Mit "dpkg --fsys-tarfile debian-file.deb | tar xf - filename" kommt man
damit grundsätzlich zum Ziel, nur funktioniert die Einbindung in
lesspipe.sh so leider nicht.

Der erste Teil des Diff läuft eine Fehlermeldung von dpkg-deb hinaus:

dpkg-deb: --fsys-tarfile takes only one argument (.deb filename)

Da sind unsere Shell-Skript Experten gefragt, die ich hiermit bitte, 
eine funktionierende Lösung beizusteuern :-)

Michael
-- 
mw at miwie.in-berlin.de                              http://www.miwie.org
mw at miwie.org                                       http://wap.miwie.org
-------------- nächster Teil --------------
--- lesspipe.sh.org	Sat Dec 16 19:03:45 2000
+++ lesspipe.sh	Sun Dec 17 12:57:36 2000
@@ -147,6 +147,8 @@
   if [[ "$file2" != "" ]]; then
     if [[ "$1" = *tar* ]]; then
       cmd="$tarcmd Oxf $2 $file2"
+    elif [[ "$1" = *Debian* ]]; then
+      cmd="dpkg --fsys-tarfile $2 | tar xf - $file2"
     elif [[ "$1" = *RPM* ]]; then
       cmd="isrpm $2 $file2"
     elif [[ "$1" = *Zip* ]]; then
@@ -215,6 +217,9 @@
   elif [[ "$1" = *roff* ]]; then
   echo "======append $sep to filename to view the nroff source==============="
     groff -s -p -t -e -Tascii -mandoc ${2#-}
+  elif [[ "$1" = *Debian* ]]; then
+  echo *"======use Deb_file${sep}contained_file to view a file in the Deb======"
+    dpkg -c ${2#-}
   elif [[ "$1" = *executable* ]]; then
   echo "======append $sep to filename to view the binary file================"
     strings ${2#-}


Mehr Informationen über die Mailingliste linux-l