Aller au contenu principal
Sujet: (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux (Lu 764 fois) sujet précédent - sujet suivant
0 Membres et 1 Invitédans ce sujet

(Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Bonsoir à toutes et à tous. (Message révisé le mercredi 8 août 2018, à 14 h 35, heure d'Ottawa [HAE])

Voici un script qui sert à activer et désactiver l'enregistrement des erreurs et avertissements dans PuppyLinux.
Il contient de nombreux commentaires; s.v.p. les lire ? Merci.

#!/bin/ash
# /root/my-applications/bin/LogErrors.sh # OR # /opt/local/bin/LogErrors.sh
#
# Goal -- Easily switch on and off Puppy's logging of errors,
# ..... warnings and similar, in file /tmp/xerrs.log. /
# Objectif -- Facilement activer ou désactiver l'enregistrement
# ..... d'erreurs, d'avertissements et de messages semblables
# ..... dans le fichier /tmp/xerrs.log, dans PuppyLinux.
#
# Required -- replaceit, by P. L. Daniels, available from
# ..... http://pldaniels.com/replaceit, if your Puppy
# ..... does not have it on board already. /
# Requis -- replaceit, par P. L. Daniels, disponible à 
# ..... http://pldaniels.com/replaceit, si votre Puppy
# ..... ne l'a pas déjà.
###
# © Christian L'Écuyer, Gatineau (Qc), Canada, 2018-07-29 & 30. GPL3.
# (Alias musher0 [forum Puppy].) # Rév. : aucune en ce moment / none at this time.
#
# Please read the Notes and the License at bottom. /
# S.v.p. lire les Notes et la Licence au bas du présent script.
####
LANGvx="$LANG";LANG=en_CA # For tests only.

cd /usr/bin
# Turn off the storage of warnings: /
# Fermer l'enregistrement d'avertissements.
if [ "`grep 'xerrs.log' xwin | grep '&1'`" ];then
 replaceit --input=/usr/bin/xwin "&1" "/dev/null" "{xerrs.log"
 case "${LANG:0:2}" in
 fr)ActiF="La collecte d'erreurs et avertissements est
 \e[33m\e[1m\e[5mmaintenant \e[4mdésactivée\e[24m dans ce PuppyLinux.\e[0m" ;;
 en|*)ActiF="Logging of errors and warnings is now
 \e[33m\e[1m\e[5m\e[4mde-activated\e[24m in this PuppyLinux.\e[0m" ;;
 esac
# ... Reactivate it / # L'inverse
elif [ "`grep 'xerrs.log' xwin | grep 'dev/null'`" ];then
 replaceit --input=/usr/bin/xwin "/dev/null" "&1" "{xerrs.log"
 case "${LANG:0:2}" in
 fr)ActiF="La collecte d'erreurs et avertissements est
 \e[33\e[1m\e[5mmmaintenant \e[4mré-activée\e[24m dans ce PuppyLinux.\e[0m" ;;
 en|*)ActiF="Logging of errors and warnings is now
 \e[33m\e[1m\e[4m\e[5mre-activated\e[24m in this PuppyLinux.\e[0m" ;;
 esac
fi

chmod +x xwin # Cf Note 3.

case "${LANG:0:2}" in
 fr) echo -e "\n\tC'est fait.
 $ActiF" ;;
 en|*) echo -e "\n\tDone.
 $ActiF" ;;
esac

LANG="$LANGvx" # For tests only.

# sleep 2s # Cf Note 4.
# restartwm

exit

Notes --
-- EN --
 ..... 1) This may be sorely needed in ubuntu-based Pups, which are set
 ..... upstream, ex-factory, by design, to be particularly verbose when
 ..... GUI and GTK apps are run from a console. E.g., at one point, the
 ..... size of my xerrs.log in my xenialPup-7.0.6 went up to 1.8 Mb.

 ..... 2) Shutting up the xerrs.log is of no major consequence for the
 ..... ordinary user, who seldom uses the console. If you are a developer,
 ..... however, it is to your advantage to leave error logging on.

 ..... 3) Important, since replaceit turns off the exec
 ..... bit of the file to do the change. This turns it back on.
 
 ..... 4)Remove the number sign in front of these two lines if you
 ..... wish X to restart automatically after the change is done.
 
 ..... 5)To double-check, type in console: <grep xerrs.log /usr/bin/xwin>
 
 -- FR --
 ..... 1) Les Puppys basés sur ubuntu en ont grandement besoin. Ubuntu
 ..... est conçu pour être en mode bavard lorque l'utilisateur lance
 ..... des applis GUI et GTK depuis la console. Par ex., à un moment
 ..... donné, la taille du fichier xerrs.log de mon xenialPup-7.0.6
 ..... a atteint 1,8 Mo.

 ..... 2) Fermer xerrs.log est sans conséquence poru l'utilisateur
 ..... ordinaire, qui utilise rarement la console. Si vous êtes un
 ..... développeur, par contre, il est à votre avantage de ne pas
 ..... fermer cette fonction.
 
 ..... 3) Cette ligne est importante puisque replaceit ferme le bit
 ..... d'exécution pour effectuer le changement. Cette ligne le réactive.
 
 ..... 4)Enlevez les dièses devant ces deux lignes si vous souhaitez que
 ..... X redémarre automatiquement après que le changement a été fait.

 ..... 5)Pour vérifier, tapez, sous console :
 ..... < grep xerrs.log /usr/bin/xwin >
 
~~~~~~~~~~~~~
Licence / License (La version française suit l'anglaise.)

 EN --
    Q.v. <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 (GPL) as published
    by the Free Software Foundation, either 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 ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    GPL for more details.
    You should have received a copy of the GNU GPL along with this
    program.  If not, see <http://www.gnu.org/licenses/>.

~~~~~~

 FR --
    Ce programme est libre : vous pouvez le redistribuer ou modifier
    selon les termes de la Licence Publique Générale GNU publiée par la
    Free Software Foundation (v. 3 ou ultérieure, à votre choix).
 Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
    AUCUNE GARANTIE, ni explicite ni implicite, y compris des garanties de
    commercialisation ou d'adaptation à un but spécifique. Pour obtenir plus
    de détails, veuillez vous reporter au texte officiel de cette licence à
    <https://opensource.org/licenses/GPL-3.0>, à sa traduction à
    <http://www.linux-france.org/article/these/gpl.html> et à
    <https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU> pour
    une explication en français.
    Normalement, une copie de la licence GPL accompagne ce programme.
    Sinon, voir à <http://www.gnu.org/licenses/>.
~~~~~~~~~~~

À la bonne vôtre !

Christian
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #1
Rebonjour.

Voici un script d'accompagnement pour le précédent.  Celui-ci désactive les messages et avertissements d'erreurs possibles
émanant du « complexe GTK », à défaut d'une meilleure expression.

Globalement, ce script remplace le xerrs.log que le 1er script désactive, mais agit une fois seulement. Si le programme a déjà un fichier de collecte de messages et avertissements d'erreurs possible, ce script de lancement les balance dans le vide (/dev/null).
Avec ce script, pas de registre d'erreurs qui répète sans fin la même chose. (Tandis que la taille du xerrs.log est sans limite.)

À la bonne vôtre.
#!/bin/sh
# filtre-2dn.sh ## et liens symboliques / and symbolic links
# < filtre > et/ and < fltr > dans / in # /opt/local/bin/
# OU / OR # /root/my-applications/bin. ##
####################
# Français (English follows)
# -------------------------------
# Objectif : stocker les avertissements et messages censément « critiques »
# ----------- de GTK2 dans un fichier d'erreurs lorsque l'utilisateur lance
# ----------- un programme à partir de la console, pour ne pas encombrer
# ----------- l'affichage. Ainsi, l'écran demeure propre, mais les messages
# ----------- demeurent accessibles. (En réaction à une remarque de
# ----------- "nosystemdthanks".)
#
# Cause : Concerne les Puppys dérivés d'Ubuntu, car les gens d'Ubuntu
# ------- compilent et livrent GTK2 en laissant active sa fonction « debug ».
# ------- Les Puppys dérivés de Debian ou de Slackware ne nous agacent pas
# ------- de la sorte.
#
# Usage : en console, taper < filtre-2dn.sh ExécutablE >, < filtre ExécutablE >
# ------- OU < fltr ExécutablE > (sans les chevrons).
#
# Explication : les avertissements et autres messages générés par GTK2
# ------------- sont envoyés à /tmp/<nom du prog>.err. De plus, l'exéc.
# ------------- est lancé en arrière-plan, ce qui libère la console
# ------------- pour autre chose.
############
# English (Français ci-dessus)
# -------------------------------
# Goal: To NOT display the warnings and "critical" messages from GTK2 when
# ----- the user launches a GTK app from console under Ubuntu-derived Puppies
# ----- but still keep them easily accessible to a developer. (New version
# ----- in reaction to a remark by "nosystemdthanks".)
#
# Cause: For Ubuntu-derived Puppies, since the Ubuntu people compile GTK2
# ------ with the "debug" function left "on". Debian- or Slackware-derived
# ------ Puppies do not annoy the user so.
#
# Usage: In console, type < filtre-2dn.sh ExecutablE >, < filtre ExecutablE >
# ------ OR < fltr ExecutablE > (without the chevrons).
#
# Explanation: The warnings and other messages generated by GTK2 are sent
# ------------ to /tmp/<prog>.err. Also, the executable is backgrounded,
# ------------ which frees the console for something else.
#
####################
# © Christian L'Écuyer, Gatineau (Qc), Canada, 12 nov. 2017. GPL3
# (Alias musher0 [forum Puppy].) # Rév. : 15 nov. 2017, 6 août 2018.
# Please see Licence below / S.v.p. voir la license ci-dessous.
#################

A="$1" # Transformons ce param. au plus tôt.
if [ -f /tmp/$A.err ];then
 exec $A "$2" 2>/dev/null &
 # Since the error info will be the same from one run to the next.
 # Deux param. au maximum. / Two parms, max.
else
 exec $A "$2" 2>/tmp/$A.err &
 # We create an error log for this app.
fi
exit
###########
 Possibles, mais ne fonctionnent pas bien : / Possible, but do not work well:
 (Retravailler)
 "$@" 2>/tmp/$A.err &
 "$2" "$3" "$4" "$5" "$6" "$7" 2>/tmp/$A.err &
 Interprètent le nom de l'exécutable comme document à charger. /
 Interpret the name of the executable as a document to be loaded.

 Contentons-nous de peu ! / ;-) / Let's be happy with what we have!
##########
EN -- Q.v. https://opensource.org/licenses/GPL-3.0
######
FR -- Ce programme est libre : vous pouvez le redistribuer ou modifier
  selon les termes de la Licence Publique Générale GNU publiée par la
  Free Software Foundation (v. 3 ou ultérieure, à votre choix).
      Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
  AUCUNE GARANTIE, ni explicite ni implicite, y compris des garanties de
  commercialisation ou d'adaptation à un but spécifique. Pour obtenir plus
  de détails, veuillez vous reporter au texte de cette licence à
  https://opensource.org/licenses/GPL-3.0 pour le texte officiel, à
  http://www.linux-france.org/article/these/gpl.html pour une traduction
  et à https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU pour
  une explication en français.
################

...
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #2
Un 3e élément de cette désactivation : des alias dans .bashrc. Ceux-ci, par exemple :
#(...)
# Pour xenial-7.0.6
alias cudatext="fltr cudatext"
alias gcolor2="fltr gcolor2"
alias geany="fltr geany"
alias inkscape="fltr inkscape"
alias mtpaint="fltr mtpaint"
alias leafpad="fltr leafpad"
alias pfind="fltr pfind"
alias ppm="fltr ppm"
alias rox="fltr rox"
alias sfs_load="fltr sfs_load"
alias yaf-splash="fltr yaf-splash"
#(...)
Si on suit ce qui se passe sur la ligne de geany, taper <geany> en console devient un alias pour < fltr geany >, de sorte que les messages et avertissements sont collectés dans un fichier /tmp/geany.err, et non pas affichés à l'écran de la console.

Si votre programme GTK préféré n'apparaît pas dans la liste ci-dessus, ouvrez ~/.bashrc dans votre éditeur et ajoutez votre programme à la liste en suivant le modèle, tout simplement.

À+
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #3
Bonjour à tous.

Veuillez trouver ci-joint le script de filtre (2e message de ce fil) sous forme d'archive zip. Il présente quelques petites différences cosmétiques comparé au script affiché hier.

Pour une raison que j'ignore, je ne peux ouvrir en ce moment le 2e message pour l'éditer; ElkArte m'amène au 1er ou au 3e message. Alors je mets l'archive ici. Désolé pour l'inconvénient.

À+
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

 

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #4
Rebonjour.

Un dernier mot peut-être. Bash ne sait rien du lancement d'une appli depuis son fichier *.desktop, par ex. depuis le menu jwm
ou icewm. Le lancement via le menu jwm ou le fichier *.desktop d'une appli ne passe donc pas par le script "filtre" inscrit dans
~/.bashrc.
Si vous lancez par ex. leafpad depuis le menu ou son fichier *.desktop, et que le registre d'erreurs est actif, les erreurs et
avertissements relatifs à ce lancement (dans un Puppy dérivé d'Ubuntu, on s'entend) seront enregistrés dans le registre
d'erreurs /tmp/xerrs.log.

C'est donc votre choix de faire enregistrer les erreurs ou non en vous servant de la "switch" fournie sur cette page dans le 1er
message. L'important ici, c'est que maintenant vous avez le choix !

Bonne route !
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #5
Bonsoir musher0

Citation de: musher0
...Bash ne sait rien du lancement d'une appli...
 
Peut être pourrait il être renseigné avec le numéro PID de ladite application ?
Est-ce que ça ne simplifierai pas le problème ?

Bonne soirée

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #6
Salut Didier.

Hum... pas sûr de bien comprendre ta question, c.-à-d. le rôle du PID là-dedans. Pas par mauvaise volonté, c'est que je suis autodidacte ! Or la caractéristique des autodidactes, selon certains, est qu'on est très forts dans certains domaines et vraiment nuls dans d'autres !

Dans Puppy, je vois deux systèmes de lancement parallèles : bash et ROX-Filer, qui ne savent pas forcément quel programme l'autre lance. Ce que je sais, c'est que la base de données des programmes lancés, qui tournent, s'obtient par la commande ps.
On peut facilement savoir si leafpad tourne, par exemple, en tapant en console :
ps | grep leafpad. Si la ligne de réponse est vide, c'est que leafpad n'est pas en fonction.

(Solution de nerd, évidemment ! L'utilisateur ordinaire, lui, va juste regarder son écran et il va voir : « Ben oui, j'ai leafpad à l'écran.  » Ou pas. Et il va aussi penser : « Dieu qu'i sont compliqués, les développeurs !!! » ) :lol

Autrement, remplacer la commande sur la ligne Exec=machin-truc par Exec="fltr machin-truc" dans les fichiers *.desktop ? À ce moment-là, oui on éviterait les avertissements, etc. Mais ne serait-ce pas comme Anne qui dit à Jean de lancer la balle, et Jean  qui crie à Hector : « Hé ! lance la balle ! ». (Désolé pour l'exemple pas drôle !)

Et puis ce serait « toute une job » :) de faire les remplacements ! (C'est le paresseux en moi qui parle, là !)

Merci d'avance de tes lumières ! (Je crois que j'en ai besoin, là !) :)
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #7
J'étais dans l'erreur... 

Quand la fonction de collecte d'avertissements et d'erreurs a été désactivée par le script LogErrors.sh, rien ne passe, d'aucun type de lancement. De nulle part; ni du ROX-Filer, ni du bash. Je viens de revérifier. 

C'est quand la fonction de collecte d'avertissements et d'erreurs est active, mais qu'on lance, disons, leafpad, depuis la console, ET qu'on a le script fltr et les alias dans .bashrc, que les avertissements et erreurs ne s'afficheront pas dans la console. Mais ils seront collectés dans le fichier xerrs.log si on lance ledit leafpad du menu du gest. de fen. ou en cliquant sur /usr/share/applications/leafpad.desktop.

Ouf. Désolé pour l'énervement.
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #8
Bonjour

Citation de: musher0
...c'est que je suis autodidacte...
 
Idem et je pense que nous le sommes tous...
Je ne connais personne qui soit né avec une licence d’informaticien en poche ;-)

Il y a peut être d'autres moyens pour savoir quels programmes tournent sur le pc, personnellement je me fie plus au numéro index du processus (PID = Processus InDex (traduction personnelle, normalement on parle de Processus IDentifiant)), puisque chaque programme lorsqu'il est exécuté engendre un PID (d'ailleurs ce PID (que j’appellerai Parent peut engendrer des PID Enfants)).

J'ai testé sous Mint la commande que tu indiques et cela ne retourne pas le résultat escompté (peut être que la syntaxe doit être différente).
Citation de: musher0
...ps | grep leafpad. Si la ligne de réponse est vide, c'est que leafpad n'est pas en fonction.
 

Par contre, cela fonctionne avec la commande "pidof"...
dans cet exemple leafpad n'est pas exécuté mais firefox oui.
didier@did18 ~ $ ps | grep leafpad
didier@did18 ~ $ ps | grep firefox
didier@did18 ~ $ pidof leafpad
didier@did18 ~ $ pidof firefox
2040 1985 1918
didier@did18 ~ $
Aucun retour sur les 2 premières lignes alors  que la 4ème ligne retourne bien le PPID 1918 et les PID enfants 1985 et 2040.
C'est tout simplement pour cela que je suggérai l'utilisation du contrôle du PID, mais comme tu le précise :
Citation de: musher0
...ce serait « toute une job » :) de faire les remplacements...
 
Et dans ce cas de figure, peut être pas si judicieux que ça...

Bonne journée.



Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #9
Merci did18 pour les notes complémentaires sur le PID. 

Mais, pour avoir le PID d'un programme, il faut que le programme soit déjà actif. Et les PIDs changent à chaque lancement.

J'ai vu l'autre jour dans un forum spécialisé une fonction bash qui « attrape » les messages d'avertissement au vol et qui laisse passer ceux qui sont véritablement significatifs. Ce pourrait être la solution. Mais je ne retrouve pas ce fil.

Je crois que je vais laisser tout ça tel quel pour l'instant.

musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #10
Au sujet de pidof : pgrep fait +/- la même chose.

Citer
[~]>pidof urxvt
17243

[~]>pgrep urxvt
17243
 
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #11

Allé, un petit  ;)  pour se rappeler les sujets intéressants. (cliquer sur moi).
Déjà à l'époque...

Bon week end.

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #12
Oui je remarque que quelqu'un n'est pas venu troubler notre discussion !!! ;)
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

Re : (Dés)Activer l'enregistrement des erreurs|avertissements dans PuppyLinux

Répondre #13
Mais pour quand même rester dans les platitudes... (sifflons un petit air ici !)

J'ai retravaillé un script de visionnement du registre des erreurs et avertissements xerrs.log que j'avais pondu début 2015.
J'avais même répondu à une demande d'Argolance (que j'ai laissée !)

Ce script destiné aux développeurs et utilisateurs avancés, quoique fort utile dans son intention, pourra aussi servir de
somnifère !!! (Pour rester dans l'esprit de 2-3 messages auparavant !!!)
Remarquez que, pour ma part, je ne pourrais pas vivre sans !!! MDR


#!/bin/ash
# /opt/local/bin/visionner-xerrs_log-2b.sh # OU / OR
# /root/my-applications/bin/visionner-xerrs_log-2b.sh
#
# Objectifs : suivre aisément et rapidement les comptes rendus d'erreur dans
# Puppy; filtrer les anomalies rapportées par X et auxquelles l'usager ne peut rien. /
# Goals: easily and quickly follow error reports in Puppy; filter anomalies
# reported by X and which the user can do nothing about.
#
# © Christian L'Écuyer, Gatineau (Qc), Canada. Original : 14-16 janvier 2015; GPL3.
# (Alias musher0 [forum Puppy].) # Rév. 24 janv., 5 et 25 févr. 2015.
# Dern. rév. : le 10 août 2018.
###
# Please read the Notes and the License at bottom. /
# S.v.p. lire les Notes et la Licence au bas du présent script.
####
SansFlaFla="$@" # Début 2015 # En option, pour Argolance.
# Si on lance le script avec < nb ou - > comme paramètre, l'info est
# affichée noir sur blanc. /
# Beginning of 2015. # As an option, for Argolance.
# If the script is run with setting < nb > or < - >, the info is displayed in b&w.
# Ex. : < visionner-xerrs_log-2b.sh nb >.

splache (){
AFICH="/tmp/affiche"
bur="`wmctrl -l | grep "tmp/xerrs" | awk '{ print $2 }'`"
bur="`expr $bur + 1`"
case ${LANG:0:2} in # Langue
 fr)BUR="Le registre est déjà affiché
      dans le bureau $bur";Non="déjà" ;;
 en|*)BUR="The log is already displayed
      on desk $bur";Non="already" ;;
esac
echo -e " $BUR.\n" > $AFICH

Geom="g 31x4+550-550"
CoLR="bg snow -fg "#83C0D4" -bd #bebebe -cr "#83C0D4""
TRNSP="tr -tint AntiqueWhite4 -sh 50"
FNT="fn "xft:Monaco:pixelsize=16:autohint=true:antialias=true""
CADR="b 20 -w 6 +sb -bl -bc -uc" # Attention, paramètre « -bl ».

rxvt -$FNT -$Geom -$CoLR -$TRNSP -$CADR &>/dev/null -e less -p "$Non" -P "  ~~~~~~~~~~~~~~~~~~~~~~~~~  " -~ /$AFICH &
sleep 5s # On affiche.
PsAwk="`ps | awk '$4 ~ /less/ && $6 ~ /déjà|already/ { print $1 }'`"
kill -s 9 $PsAwk
rm -f $AFICH # yaf-splash étant pitoyable...
} # Fonctions

xerrslog (){
[ -f /tmp/xerrs.less ] && rm -f /tmp/xerrs.less # préparation

# choix de l'éditeur / Choice of Editor
if [ `which joe` ];then # (par défaut / by default)
 export EDITOR="/root/my-applications/bin/joel.sh /tmp/xerrs.log 2>/dev/null"
else
 export EDITOR="/usr/local/bin/defaulttexteditor /tmp/xerrs.log"
fi
# Le SOMMAIRE du registre d'erreurs se charge dans l'éditeur en tapant 'v'. /
# The SUMMARY of the error log is loaded in the text editor by typing 'v'.

# Ligne de titre / Title line
[ ${LANG:0:2} = "fr" ] && lign="lignes" || lign="lines"
NLIGN="`wc -l /tmp/xerrs.log | awk -v l="$lign" '{ print $2"  -- ("$1" "l }'`"
poids="`ls -logh /tmp/xerrs.log | awk '{ print $3 }'`"

# messages pour / for less
#AIDE="      [ 'q',quitter  'h',aide  'g',début  'G',fin  'u',haut  'd', bas]      "
#HELP="        [ 'q',quit  'h',help  'g',top  'G',end  'u',up  'd',down ]      "
AIDE="[ 'q',quitter; 'h',aide; 'g',début; 'G',fin; 'u',haut; 'd',bas; 'v',xerrs\.log ]"
HELP="[ 'q',quit; 'h',help; 'g',top; 'G',end; 'u',up; 'd',down; 'v',xerrs\.log ]"
[ ${LANG:0:2} = "fr" ] && INFO="$AIDE" || INFO="$HELP"

PARAMLESS="c -j 25 -S -w -s -N -B -q" # param. less

case ${LANG:0:2} in fr)Ligne=" -=- Nx -===- Commande 'suspecte ou incorrecte' -===-" ;;
 *)Ligne=" -=- Nx -===- 'Suspicious or incorrect' command -===-" ;; esac

# Sommaire / Summary
echo -e "$Ligne\n`awk '!/board|charsets|Initializing|map|arning|xkbcomp|efinit|initrd|mational|acpi|appbar|UTF|ymbol|gtkrc|ROX|Terminated|WARNING/' /tmp/xerrs.log | awk NF | uniq -c`\n$Ligne                    ¬¤¬" > /tmp/xerrs.less

# Copie le fichier avec en-tête, "pied de page" et filtres. Aussi, enlève
# les lignes vides et groupe les erreurs. Car xerrs.log est un fichier
# d'info NON éditable. /
# Copies file with header, footer and filters. Also removes empty lines
# and groups errors. Because the xerrs.log info file is NOT editable.

# afficher / display ## param. urxvt / urxvt parms
Geom="g 92x20+165-165"
case "$SansFlaFla" in
 nb|-)COLR="bg white -fg black -cr black";TRNSP="";FNT="";CADR=""
# Si vous n'aimez pas le flafla. / # If you don't like bling. #
 urxvt -$COLR -T "Original : $NLIGN; $poids) --" -$Geom &>/dev/null -e less -$PARAMLESS -~ -p "¬¤¬" -P "    $INFO  " /tmp/xerrs.less ;;

 *)COLR="bg #2F4A3A -fg white -bd OrangeRed3 -cr white" # #542214"
 TRNSP="tr -tint AntiqueWhite1 -sh 49" # transparence
 FNT="fn xft:Monaco:pixelsize=13:antialias=true:autohint=true"
 CADR="b 20 -sr +st +tcw -sbt 14" # Param. d'urxvt
#
 rxvt -$COLR -T "Original : $NLIGN; $poids) --" -$FNT -$CADR -$TRNSP -$Geom &>/dev/null -e less -$PARAMLESS -p "¬¤¬" -P "  $INFO  " -~ /tmp/xerrs.less ;;
esac # Commande d'affichage
}

case "`ps | tr -s ' ' | awk '$4=="less" && $NF ~ /xerrs/'`" in
 "")xerrslog ;; # Ouvrir
 *)if [ -f /tmp/xerrslog.vu ];then
 kill -s 9 `ps | awk '$4=="less" && $NF ~ /less/ { print $1 }'`
 rm -f /tmp/xerrslog.vu # Fermer
   else
 splache;echo vu > /tmp/xerrslog.vu # Avertir
   fi ;;
esac ## Three-position switch / Commutateur à 3 positions
exit

Notes --
 -- EN --
-- Incorporated above. Plus:

-- Useful to: developers and advanced users.

-- Requires: awk, expr, less, wmctrl.
-- The joe editor is recommended if one wishes to view the contents of the log; but
____ viewing is also fine geany and cudatext. Does not work with leafpad.

-- Companion scripts --
--- fltr (filtre-2dn.sh)
---- Goal: Stores warnings per program in /tmp.

--- LogErrors.sh
---- Goal: Turns off or on Puppy's storage of errors in /tmp/xerrs.log.

-- The small reminder window is useful if you have the log displayed
on one desktop and you are working on another.

-- If you are going to use this script often, you may wish to consider
dragging it on the ROX desktop and decorating it with an icon.

--------
 
 -- FR --
-- Incorporées ci-dessus. Plus :
 
-- Utile aux : développeurs et utilisateurs avancés.

-- Requiert: awk, expr, less, wmctrl.
-- L'éditeur joe est l'option recommandée si on souhaite visionner le contenu du registre;
mais fonctionne bien aussi avec geany et cudatext. Ne fonctionne pas avec leafpad.

-- Scripts d'accompagnement
--- fltr (filtre-2dn.sh)
---- Objectif : Collecte les avertissements par programme dans /tmp. /

--- LogErrors.sh
---- Objectif : Active et désactive la collecte d'avertissements dans /tmp/xerrs.log.

-- La petite fenêtre d'aide-mémoire est utile si le registre est affiché
dans un bureau et que vous êtes en train de travailler dans un autre.

-- Si vous allez utiliser ce script souvent, il serait peut-être bon de l'amener
sur le bureau ROX et de le décorer d'une icône.
 
~~~~~~~~~~~~~
Licence / License (La version française suit l'anglaise.)
 -- EN --
    Q.v. <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 (GPL) as published
    by the Free Software Foundation, either 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 ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    GPL for more details.
    You should have received a copy of the GNU GPL along with this
    program.  If not, see <http://www.gnu.org/licenses/>.

~~~~~~
 -- FR --
    Ce programme est libre : vous pouvez le redistribuer ou modifier
    selon les termes de la Licence Publique Générale GNU publiée par la
    Free Software Foundation (v. 3 ou ultérieure, à votre choix).
 Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS
    AUCUNE GARANTIE, ni explicite ni implicite, y compris des garanties de
    commercialisation ou d'adaptation à un but spécifique. Pour obtenir plus
    de détails, veuillez vous reporter au texte officiel de cette licence à
    <https://opensource.org/licenses/GPL-3.0>, à sa traduction à
    <http://www.linux-france.org/article/these/gpl.html> et à
    <https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU> pour
    une explication en français.
    Normalement, une copie de la licence GPL accompagne ce programme.
    Sinon, voir à <http://www.gnu.org/licenses/>.

~~~~~~~~~~~~~

N'oubliez pas de lire les notes et commentaires dans le script.
Enjoy!

Avec ce script, je crois avoir fait le tour du problème des avertissements dans Puppy (à ce stade-ci de mes connaissances).
S'il vous vient des lumières -- ou des étoiles filantes, les Perséides, c'est ce soir et demain -- à ce sujet, n'hésitez pas à les partager avec nous ci-dessous ? Merci d'avance.

Bonne fin de soirée.
~~~~~~~~~~~~~~
P.S. Dans les illustrations ci-dessous, le chiffre tout à gauche indique le numéro de ligne. Le 2e chiffre (celui dans la 2e colonne) indique combien de fois la ligne est répétée dans l'ensemble du registre xerrs.log.
musher0
~~~~~~~~~
C'est parce qu'on n'ose pas que c'est difficile.
(D'après Sénèque)

 
Simple Audio Video Embedder