Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Sat 23 Feb 2019, 03:22
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Script en bash pour remplacer le traditionnel lecteur man
Moderators: Béèm, darkerror05, linuxcbon
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [5 Posts]  
Author Message
musher0

Joined: 04 Jan 2009
Posts: 13557
Location: Gatineau (Qc), Canada

PostPosted: Mon 14 Jan 2019, 11:13    Post subject:  Script en bash pour remplacer le traditionnel lecteur man  

Bonjour,

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 Wink 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:
#!/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>.
#~~~~~~~~~~~~~
links-as-man-page-reader.jpg
 Description   
 Filesize   170.51 KB
 Viewed   102 Time(s)

links-as-man-page-reader.jpg

man-m0-0.3.pet
Description 
pet

 Download 
Filename  man-m0-0.3.pet 
Filesize  3.34 KB 
Downloaded  18 Time(s) 

_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)
Back to top
View user's profile Send private message 
Argolance


Joined: 06 Jan 2008
Posts: 3552
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Mon 14 Jan 2019, 19:27    Post subject:  

Bonsoir,
Merci mais pourquoi pas, tout simplement, soit avec links soit avec n'importe quel navigateur, se rendre directement aux pages man, ou même à cette page, où sont listées la plupart des commandes utilisateur?
Arrow http://manpagesfr.free.fr/man/man1/Index.1.html
ou carrément en console:
Code:
links http://manpagesfr.free.fr/man/man1/Index.1.html
?

Cordialement.

_________________


Last edited by Argolance on Wed 16 Jan 2019, 05:51; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website 
musher0

Joined: 04 Jan 2009
Posts: 13557
Location: Gatineau (Qc), Canada

PostPosted: Mon 14 Jan 2019, 23:37    Post subject:  

Allô, Argolance.

Quelques réponses :
-- Si on a des pages man sur son ordi, pourquoi utiliser de la bande passante ?
Pour ma part, mon FSI m'impose un quota par mois. Je ne dois pas être le seul sur la planète dans ce cas. Alors j'essaye d'économiser par ci par là.

-- Le site de J.-P.Barralis offre beaucoup de pages man de type 1 à 9. Barralis n'a
pas encore traduit toutes les pages,comme j'ai dit, mais manpagesfr.free.fr n'offre
que les pages de type 1.

-- Utiliser links en mode console ou graphique, c'est au choix. On n'a qu'à enlever le
paramètre < -g > sur la ligne de commande de links.

-- Mon script offre l'option d'enregistrer les pages dans un format texte à simple
interligne, c'est-à-dire compact et facile à lire dans son éditeur ou son lecteur de
texte préféré.

-- Ce script est mieux que
--- le busybox man, qui fonctionne mal
--- l'utilitaire man, absent de nos Puppys
--- l'utilitaire pman de BarryK et al., qui date de quelques années, mais qui
malheureusement ne fonctionne pas (ou plus ?) sur la slacko-6.9.9.9.

Alors j'ai tenté de doter les utilisateurs d'un outil un peu convenable.

À+

_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)

Last edited by musher0 on Sun 20 Jan 2019, 17:51; edited 1 time in total
Back to top
View user's profile Send private message 
oui

Joined: 20 May 2005
Posts: 3259
Location: near Woof (Germany) :-) Acer Laptop emachines 2 GB RAM AMD64. franco-/germanophone, +/- anglophone

PostPosted: Sun 20 Jan 2019, 17:39    Post subject:  

musher0 wrote:

-- Mon script offre l'option d'enregistrer les pages dans un format texte à simple
interligne, c'est-à-dire compact et facile à lire dans son éditeur ou son lecteur.préféré.


ça c'est une réelle force car on peut alors facilement faire "mouliner" la page en anglais par google translation... et d'y rajouter ses propres annotations (des exemples utiles de codage spécifique etc.)

par contre, les pages déjà sur le disque dur, si elles ne sont pas de la même version que celle installée, attention, c'est un vrai polson...

enfin une dernière force, pour les gens comme moi qui se sont totalement habitués à la version anglophone de Puppy, cela permet d'avoir la manpage en français, si existante. ça aussi c'est bien (même si pour Christian, parfaitement bilingue, cela ne joue aucun rôle pratique! Pour les autres, par contre, souvent, si...)
Back to top
View user's profile Send private message 
musher0

Joined: 04 Jan 2009
Posts: 13557
Location: Gatineau (Qc), Canada

PostPosted: Sun 20 Jan 2019, 17:48    Post subject:  

@oui.

"... ça ne joue aucun rôle pratique ...»

Je comprends bien l'anglais, mais quand même, j'suis pas un « assimilé » ! Si la page
man existe en français, je vais sauter d'ssus en premier !!!

À bientôt.

_________________
musher0
~~~~~~~~~~
Je suis né pour aimer et non pas pour haïr. (Sophocle) /
I was born to love and not to hate. (Sophocles)
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 1 of 1 [5 Posts]  
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0396s ][ Queries: 12 (0.0054s) ][ GZIP on ]