Sous-titre : Je cherche un cobaye !!!
Re-allô !
J'ai remanié ce script en profondeur. Il faut dire que je cherche en même temps une façon rapide et pratique de présenter tout script et d'indiquer la licence. Un gabarit, quoi.
J'ai opté ici pour une solution avec case... in... esac.
Si vous voulez de l'info sur le script, vous tapez -- en console (ben oui! Y-a-t-i une autre façon !?) --
< copderes-PupLin.sh i > ou I -- ou a, ou A (pour aide) -- ou h ou H (des fois que vous seriez anglicisé(e) !!!)
Pour celles et ceux qui ne sont pas devin(e)s , au long, c'est : « copie de réserve Puppy Linux.sh ».
Ç'a plus de sens, comme ça ?
On continue ! Si vous voulez connaître sous quelle licence est ce script, vous tapez -- en console (ben oui, etc...) --
< copderes-PupLin.sh l > ou L
Pour faire tourner le script, vous tapez < copderes-PupLin.sh > et rien d'autre. Comme d'habitude, quoi.
Dans cette mouture, j'ai essayé de généraliser, prévoir le cas où l'utilisateur a un répertoire plutôt qu'un fichier pupsave. Vous allez voir, dans la 2e partie, il y a plein de dièses : c'est là que j'ai besoin d'un cobaye !
[Modéré par ] @augras car hors sujet
Alors voilà. Tout commentaire qui se tient sera le bienvenu. À+
#!/bin/bash
[size=3][font=Georgia]TITRE="# ~~~~~~~~~~~~~ copderes-PupLin.sh ~~~~~~~~~~~~ #"[/font][/size]
[size=3][font=Georgia]AUTEUR="# © Christian L'Écuyer,Gatineau (Qc), Canada, 2018-05-07. GPL3.[/font][/size]
[size=3][font=Georgia]# (Alias musher0 [forum Puppy].) # Rév. : 2018-05-09"[/font][/size]
[size=3][font=Georgia]MERCI="# Remerciements à : / Thanks to:"[/font][/size]
[size=3][font=Georgia]LignE="# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #"[/font][/size]
[size=3][font=Georgia]INFO="$TITRE\n# /opt/local/Systeme/copderes-PupLin.sh[/font][/size]
[size=3][font=Georgia]# OU | OR\n# ~/my-applications/bin/copderes-PupLin.sh[/font][/size]
[size=3][font=Georgia]# ~~~~~~~~~~\n# Objectif : créer rapidement une copie du fichier de[/font][/size]
[size=3][font=Georgia]# .......... sauvegarde personnel actif du Puppy.[/font][/size]
[size=3][font=Georgia]# Requiert : tree, awk, dirname, zip.\n# Optionnel : lz4 (mais recommendé), st.[/font][/size]
[size=3][font=Georgia]# ~~~~~~~~~~[/font][/size]
[size=3][font=Georgia]# Goal: make a fast backup of the active pupsave file.[/font][/size]
[size=3][font=Georgia]# Requires: tree, awk, dirname, zip.\n# Optional: lz4 (but recommended), st.[/font][/size]
[size=3][font=Georgia]# ~~~~~~~~~~\n$AUTEUR\n$LignE"[/font][/size]
[size=3][font=Georgia]# Licence au bas du script | License at the bottom of the script.[/font][/size]
[size=3][font=Georgia]case "$1" in[/font][/size]
[size=3][font=Georgia] l|L)LIC="# ~~~~~~~~~~~ LICENSE for: / LICENCE pour : ~~~~~~~~ #"[/font][/size]
[size=3][font=Georgia] clear;echo -e "\n$LIC\n$TITRE\n$AUTEUR"[/font][/size]
[size=3][font=Georgia] [ "${#MERCI}" -gt "32" ] && echo "$MERCI"[/font][/size]
[size=3][font=Georgia] tail -n 12 $PWD/copderes-PupLin.sh[/font][/size]
[size=3][font=Georgia] echo $LignE ;; # Licence / License[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] a|A|h|H|i|I)echo -e "\n$INFO\n" ;; # Info.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] *)cd /initrd # Script[/font][/size]
[size=3][font=Georgia] Dat="`date '+%y%m%d-%Hh%M'`"[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] if [ "`ls -Algod pup_rw | awk /drw/`" ];then[/font][/size]
[size=3][font=Georgia] cd /mnt/home # Tous les Puppys ont une partition « home ».[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] # Variables[/font][/size]
[size=3][font=Georgia] CiblE="`awk -F="'" '$1 ~ /LAST/ { print $2 }' /etc/rc.d/BOOTCONFIG | awk '$1 ~ /save/ { print $1}'`"[/font][/size]
[size=3][font=Georgia] #' Le nom du pupsave actif est toujours indiqué dans ce fichier.[/font][/size]
[size=3][font=Georgia] CiblE="`tree -fi -L 3 | grep "$CiblE" | grep -v -E "zip|lz"`"[/font][/size]
[size=3][font=Georgia] DiR="`dirname $CiblE`"[/font][/size]
[size=3][font=Georgia] cd $DiR # On entre dans le rép. du Puppy même.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] CiblE="`echo $CiblE | awk -F"/" '{ print $NF }'`" # On précise.[/font][/size]
[size=3][font=Georgia] cp -f $CiblE "$CiblE-$Dat" # On fait une copie pour ne pas déranger le pupsave actif.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] CiblE="$CiblE-$Dat" # On ajoute la date. Plus commode.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] if [ -x /usr/bin/lz4 ];then # Action[/font][/size]
[size=3][font=Georgia] if [ -x /usr/bin/st ];then[/font][/size]
[size=3][font=Georgia] st -g 78x4 -e lz4 -f9B5BD $CiblE # st (simple terminal)[/font][/size]
[size=3][font=Georgia] else rxvt -g 78x4 -sr-e lz4 -f9B5BD $CiblE[/font][/size]
[size=3][font=Georgia] fi # Curieux... Il faut à lz4 une console pour fonctionner correctement ?[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] else zip -5 $CiblE.zip $CiblE # Pas besoin pour zip.[/font][/size]
[size=3][font=Georgia] fi[/font][/size]
[size=3][font=Georgia] wait # On attend que le processus soit terminé.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] rm -f $CiblE # Nettoyage # Important. Autrement,[/font][/size]
[size=3][font=Georgia] # la prochaine sauvegarde ne se fera pas comme il faut.[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia] # else # Tentatively; to be tested by someone who uses pupsave folders. TIA. |[/font][/size]
[size=3][font=Georgia] ## Encore à l'essai; à tester par quelqu'un qui utilise des répertoires « pupsave ».[/font][/size]
[size=3][font=Georgia] ## Merci d'avance.[/font][/size]
[size=3][font=Georgia] # cd /mnt/home[/font][/size]
[size=3][font=Georgia] # Z="PupLinSav$Dat"[/font][/size]
[size=3][font=Georgia] # zip -0ry $Z.zip /mnt/home/Rep-Pup-Save/ # Trouver le moyen de préciser.[/font][/size]
[size=3][font=Georgia] # if [ -x /usr/bin/lz4 ];then # Action[/font][/size]
[size=3][font=Georgia] # if [ -x /usr/bin/st ];then[/font][/size]
[size=3][font=Georgia] # st -g 78x4 -e lz4 -f9B5BD $Z.zip[/font][/size]
[size=3][font=Georgia] # else rxvt -g 78x4 -sr-e lz4 -f9B5BD $Z.zip[/font][/size]
[size=3][font=Georgia] # fi[/font][/size]
[size=3][font=Georgia] # else zip -5 $Z.zip.zip $Z.zip[/font][/size]
[size=3][font=Georgia] ## Même remarques que ci-dessus concernant les compresseurs.[/font][/size]
[size=3][font=Georgia] # fi[/font][/size]
[size=3][font=Georgia] fi ;;[/font][/size]
[size=3][font=Georgia]esac[/font][/size]
[size=3][font=Georgia]exit[/font][/size]
[size=3][font=Georgia][/font][/size]
[size=3][font=Georgia]# EN -- Q.v. https://opensource.org/licenses/GPL-3.0[/font][/size]
[size=3][font=Georgia]# ~~~~[/font][/size]
[size=3][font=Georgia]# FR -- Ce programme est libre : vous pouvez le redistribuer ou modifier[/font][/size]
[size=3][font=Georgia]# selon les termes de la Licence Publique Générale GNU publiée par la[/font][/size]
[size=3][font=Georgia]# Free Software Foundation (v. 3 ou ultérieure, à votre choix).[/font][/size]
[size=3][font=Georgia]# Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS[/font][/size]
[size=3][font=Georgia]# AUCUNE GARANTIE, ni explicite ni implicite, y inclus de commercialisation[/font][/size]
[size=3][font=Georgia]# ou d'adaptation à un but spécifique. Pour plus de détails, s.v.p. vous[/font][/size]
[size=3][font=Georgia]# reporter au texte officiel de cette licence à l'adresse Internet ci-dessus[/font][/size]
[size=3][font=Georgia]# (traduction à http://linux-france.org/article/these/gpl.html), et à[/font][/size]
[size=3][font=Georgia]# l'explication qui en est donnée à[/font][/size]
# https://fr.wikipedia.org/wiki/Licence_publique_générale_GNU.