J'en entends déjà me dire :
« Bah, les pages man, on n'a pas besoin de ça, on s'débrouille sans ! »
Sauf que pour tirer le maximum d'un utilitaire, il faut peut-être l'avoir étudié plus
à fond que pour un usage « système D ». Et puis, c'est la chose à faire avant
de jeter le bébé avec l'eau du bain, si on est un tant soit peu conscienceux !
Les gens aiment jeter leurs choux gras, c'est bien connu. C'est pas un petit
script comme celui-ci qui va inverser la tendance. Mais qui sait ? Je crois pour ma
part qu'il faut exploiter à fond les applis et exécutables connus avant de céder à la
tentation de la nouveauté.
Donc, Ici mes colocuteurs trouveront un script en bash pour remplacer le
traditionnel lecteur man.
Cette version peut non seulement
-- lire les pages man sur votre ordi mais aussi aller en ligne en chercher sur le site
de J.-P. Barralis.
(Je vous communique aussi l'adresse d'un site de pages man en anglais parce
que le site de M. Barralis ne contient pas tout, toutes les pages man n'ayant pas
encore été traduites, malheureusement :.)
-- offre d'afficher la page à simple interligne au format txt, via less, ou à double
interligne, la mise en forme habituelle en html;
-- applique des codes ANSI aux messages.
Bonne fin de journée !
#~~~~~~~~~~~~~
Code: Select all
#!/bin/bash
# /bin/man-m0-0.3a.sh
# Avec lien symbolique à | With symbolic link at | /bin/man
# © Christian L'Écuyer, Gatineau (Qc), Canada, 12-14 janv. 2019.
# (Alias musher0 [forum Puppy].) GPL3.
# Notes au bas du script. | Notes at bottom of script.
#~~~~~~~~~~~~~
Z="" # Z="`busybox man -w $1`" # Couci couça. | So-so.
Z="`whereis $1 | awk '{ print $NF }'`" # Permet un meilleur contrôle.
if [ "$?" -gt "0" -o "${Z: -2}" != "gz" ];then # Vérification # Important
CoLoR="bd AntiqueWhite2 -bg AntiqueWhite4 -fg white"
case "${LANG:0:2}" in fr)MsG1=" Il n'y a pas de manuel pour cet utilitaire.
S.v.p. essayer avec 'utilitaire --help'." ;;
en|*)MsG1=" There is no manual for this utility.
Please try with 'utility --help'." ;;
esac
bcm -u /root/my-documents/icons/emblem-important.png -a 1 -g c:c -d 5 -b "#000000FF" -c "#0c0c0c8F" -t "<span font='AkizaSans Bold Italic 18' color='white' gravity='north' gravity_hint='line'>$MsG1</span>"
case "${LANG:0:2}" in # Option d'aller en ligne
fr)MsG2="\n\tOu taper 'I' pour un index en ligne.\n\t (Toute autre touche quitte.)"
AdreS="http://jp.barralis.com/linux-man" ;;
en|*)MsG2="\n\tOr type I for an online index.\n\t (Any other key exits)."
AdreS="http://man7.org/linux/man-pages" ;;
esac;echo -e "\e[1m\e[36m${MsG2}\e[0m"
OnLinE="";read OnLinE
case "${OnLinE}" in i|I)defaulthtmlviewer "${AdreS}" ;;
esac;exit
else NoM="`basename $Z`" # Page man sur place
case "${NoM: -2}" in gz)gunzip -Nfkq $Z
NoM="${NoM:0: -3}";Z="${Z:0: -3}" ;;
esac
man2html $Z | awk NF > /tmp/$NoM.html
case "${LANG:0:2}" in fr)MsG3=" Lire au format txt (taper 'T'; simple interligne) ou
html (taper 'H'; format d'origine) ?
(Ctrl-C pour quitter)" ;;
en|*)MsG3=" Read in txt (type 'T'; single spaced) or
html format (type 'H'; original line spacing)?
(Ctrl-C to exit)" ;;
esac;echo -e "\e[1m\e[36m${MsG3}\e[0m"
R="";read R # Visionnement
case $R in t|T)links -dump /tmp/$NoM.html | awk NF > /tmp/$NoM.txt
exec visionner-avec-less4c.sh /tmp/$NoM.txt ;;
h|H)MenU="menu-font-size 20 -menu-background-color 0x8B8378 -menu-foreground-color 0xFFFAF0"
ScrolL="scroll-bar-area-color 0x8B8378 -scroll-bar-bar-color 0xFFFAF0"
exec links -g -$MenU -$ScrolL /tmp/$NoM.html ;;
esac
[ "${Z:0: -1}" != "z" ] && rm -f $Z # Fin
case "${LANG:0:2}" in fr)MsG4="\n Taper 'O' (oui) afin de conserver cette page
dans Docs/Linux pour référence rapide ?\n (Toute autre touche quitte.)" ;;
en|*)MsG4="\n Type 'Y' (yes) to keep this page in
Docs/Linux for easy reference?\n (Any other key quits.)" ;;
esac;echo -e "\e[1m\e[36m${MsG4}\e[0m"
R="";read R
case $R in o|O|y|Y)[ -d /root/my-documents/Docs-Linux ] || mkdir -p /root/my-documents/Docs-Linux
mv /tmp/$NoM.* /root/my-documents/Docs-Linux/ ;;
esac;rm -f /tmp/$NoM.*
fi;exit
#~~~~~~~~~~~~~ Requiert | Requires --
awk, basename, bcm (vovchik), man2html, whereis; links.
#~~~~~~~~~~~~~ Usage --
man-m0.sh $1, OU | OR man $1
Ex. : man-m0.sh rsync, OU | OR man rsync
#~~~~~~~~~~~~~ Note - FR --
Fonctionne sur slacko-6.9.9.9 et slackster-700. Non testé sur un autre Puppy.
Affiche les pages man sur votre ordi, et non pas celles en ligne.
#~~~~~~~~~~~~~ Note - EN --
Works on slacko-6.9.9.9 and slackster-700. Untested on other Pups.
Displays the man pages on your computer, not those on line.
#~~~~~~~~~~~~~ Licence / License -- <https://opensource.org/licenses/GPL-3.0>
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, version 3 of the License or (at your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. Please see the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see <http://www.gnu.org/licenses/>.
#~~~~~ FR --
Ce programme est libre : vous pouvez le redistribuer ou le modifier selon les
termes de la Licence Publique Générale GNU publiée par la Free Software
Foundation, version 3 ou ultérieure, à votre choix.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
GARANTIE explicite ni implicite, dont celles de commercialisation ou
adaptation à un but précis. Pour plus de détails, se reporter au texte
officiel à <http://www.gnu.org/licenses/>, à sa traduction à
<http://www.linux-france.org/article/these/gpl.html> et, pour une explication
en français, à <https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU>.
#~~~~~~~~~~~~~