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 Fri 17 Jan 2020, 16:09
All times are UTC - 4
 Forum index » House Training » Users ( For the regulars ) » Pour les francophones
Petit panneau intouchable de progrès en pseudo-GUI
Moderators: Béèm, darkerror05, linuxcbon
Post new topic   Reply to topic View previous topic :: View next topic
Page 1 of 1 [3 Posts]  
Author Message
musher0

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

PostPosted: Wed 03 Apr 2019, 18:28    Post subject:  Petit panneau intouchable de progrès en pseudo-GUI  

Bonjour.

Mieux vaut tard que jamais, dit le vieux motard qu'elle aimait... Wink

J'ai cherché le fil en français pour le script de barre de transmission dont
Fabrice est l'auteur et auquel Argolance a contribué; j'aurais rabouté mon
script à ce fil. Mais motte, rien trouvé.

Donc je dois créer ce nouveau fil pour ma trouvaille.

Flanquez les deux scripts ci-dessous dans un chemin d'exécutables,
disons, /root/my-applications/bin.

Maintenant supposons que vous voulez voir le progrès de l'opération:
Code:
lzip -fk2 puduansave-HaveCharacter3.2fs
. Vous tapez
Code:
lanceur-ligne-de-points.sh o lzip -fk2 puduansave-HaveCharacter3.2fs

Notez que le script < ligne-de-points > tout seul n'a pas grande utilité,
sinon marquer le temps qui passe. Notez aussi qu'il ne s'arrête, une fois
lancé, qu'en plaçant un fichier bidon nommé « stop » dans /tmp.
Ex.
Code:
>/tmp/stop

En espérant que ce sera utile à quelqu'un. Si vous avez des questions au
sujet de ces deux scripts, n'hésitez pas à me les poser ci-dessous. Mais
prenez la peine de lire les commentaires dans les scripts avant, s.v.p.

À+

~~~~~~~~~~~~~~~~~~
Code:
#!/bin/bash
# /opt/local/bin/lanceur-ligne-de-points.sh
#
# Objectif : intégrer une ligne de progrès à une commande
# ---------- qui prend du temps à s'exécuter.
#
# Requiert : ligne-de-points.sh
#
# Usage : lanceur-ligne-de-points.sh < caractère pour marquer le progrès >
# < commande > < ses paramètres >.
#
# Important : le caractère marquant le progrès doit être en position 1
# ----------- sur la lighe de commande.
#
# Exemples :
# lanceur-ligne-de-points.sh o lzip -fk2 puduansave-HaveCharacter3.2fs
# lanceur-ligne-de-points.sh . rsync -avz puduansave-HaveCharacter3.2fs /mnt/sdb2
#
# (c) musher0, 3 avril 2019. GPL3
####
# Préparation
Q="$@"

# de la commande
long="${#Q}" # echo $long
CmD="${Q:2:$long}" # echo $CmD

# de la ligne de progrès
P="${Q:0:1}" # echo $P
TrnsP="tr -tint NavajoWhite1 -sh 67"
ClR="fg gold -bg Sienna4 -cr snow"
GeoM="g 42x6-111+111"
AutreS="sb -b 25 -bc -uc -bl"
# Attention : le paramètre < -bl > empêche toute interaction
# ----------- avec cette console.
FadE="fade 70 -fadecolor "#94A495"" # Effet tamisé.

# Action
urxvt -$TrnsP -$FadE -$ClR -$GeoM +$AutreS -e ligne-de-points.sh $P &
$CmD
>/tmp/stop # Commutateur pour ligne-de-points.sh,
# ---------- nécessaire avec le param. < -bl > d'urxvt.


Code:
#!/bin/ash
# /opt/local/bin/ligne-de-points.sh
#
# Objectif -- Imprimer dans le terminal une ligne
# ------------- de points pendant un long processus.
#
# Usage --  Incorporer sur une ligne convenable du script
# ------------ principal, en arrière-plan, JUSTE AVANT
# ------------ la commande lançant le long processus.
#
# Exemple -- < ligne-de-points.sh & # Noter l'importante éperluette !
# --------------- < cp -f Gargantuesque_Fichier Répertoire_de_Destination
#
# Inspiré des idées exposées à
# https://stackoverflow.com/questions/238073/ \
# how-to-add-a-progress-bar-to-a-shell-script.
# Relevé le 14 mars 2019 en soirée.
#
# (c) musher0, 15 mars 2019. GPL3.
####
# Préparation
P="$1"
[ "$P" = "" ] && P="."
StoP () { if [ -f /tmp/stop ];then break;exit;fi ; }
# Commutateur
rm -f /tmp/stop # Ce drapeau ne doit pas exister au départ. On
# peut le créer à partir d'une autre console ou d'un gest. de fen.

echo -e "\t\e[1;4;32mProgrès de l'opération\e[0m"
for j in `seq 10`;do # Minutes
     for i in `seq 40`;do # Secondes
# « `seq 30` » ici et « sleep 2s » ci-dessous = 30 fois par minute,
# c.-à-d. un point toutes les deux secondes.
#
# Si on veut voir apparaître un point à toutes les secondes,
# mettre « `seq 60` » ici, et « sleep 1s » à la ligne ci-dessous.
#
#        P="."
# On peut mettre autre chose qu'un point, le caractère « ~ », par ex.
          /bin/echo -ne "$P" # Utilise l'utilitaire echo et non la fonction de bash.
# Le paramètre < -n > signifie : « Imprime la chaîne suivante sur la même ligne. »
#
# Le paramètre < -e > signifie : « Accepte les séquences ANSI ». Car
# on peut colorer cette ligne à partir du script principal en spécifiant
# des séquences de couleur ANSI.
#
# Par ex., envoyer la commande < echo - "\e[33m" > avant de passer la
# main au présent script fera qu'il imprimera des points de couleur or. En soi,
# le présent script adopte les couleurs par défaut de la console qui le lance.
#
          sleep 1.5s # 2s # 1s
          StoP
     done
     echo -e "\e[1L\e[K\e[1A"
# Le code ANSI « Échapp. 1 L » pousse d'une ligne vers le bas
# l'écriture qu'il pourrait déjà y avoir sur une nouvelle ligne dont
# la ligne de progrès aurait besoin.
     StoP
done
echo -e "\e[0m" # En-cas pour la fin, afin d'éviter du barbouillage dans
# la console. Annule les séquences de couleur ANSI si le script principal
# en a utilisé. En d'autres mots, cette commande restaure les couleurs
# de départ de la console.
ligne-de-points-1.jpg
 Description   
 Filesize   182.76 KB
 Viewed   171 Time(s)

ligne-de-points-1.jpg


_________________
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: 3732
Location: PORT-BRILLET (Mayenne - France)

PostPosted: Thu 04 Apr 2019, 05:03    Post subject:  

Bonjour,
Quote:
J'ai cherché le fil en français pour le script de barre de transmission dont
Fabrice est l'auteur et auquel Argolance a contribué; j'aurais rabouté mon
script à ce fil. Mais motte, rien trouvé.

Il ne me semble pas qu'il y ait un fil sur la partie francophone mais deux, plus ou moins liés sur la partie anglophone:
Merci pour ces srcipts.

Cordialement.

_________________

A second life for your PCs...
Back to top
View user's profile Send private message Visit poster's website 
musher0

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

PostPosted: Thu 04 Apr 2019, 12:08    Post subject:  

Tiens, une réaction. Wink

Merci !

J'allais oublier : en plus de mes scripts, si la commande dispose d'un
mode « verbeux », utilisez-le ? Plus on a d'infos sur un processus,
mieux c'est.

Exemples :
-- la commande zip offre sa propre ligne de progrès si on y ajoute le
paramètre < -dd > : zip -9ry -dd machin.zip Machin/

-- lz4 -9fv. pupsave_MachinChose.sfs -- Le « v », c'est pour verbeux.

-- idem pour rsync dans la commande < rsync -avz >.

Enfin, dans le panneau de progrès, chaque ligne représente une minute.

À+

_________________
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 [3 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.0865s ][ Queries: 12 (0.0199s) ][ GZIP on ]