Dernière version, multilingue, remaniée, pour
Puppys versions 5.7.0 et plus, ici;
Avant-dernière version, multilingue, ci-dessous.
~~~~~~~~~~~~~~~~
Bonsoir à toutes et à tous.
En rapport avec le combineur de SFS de Mark Ulrich (MU), dont je parle
ici, en attendant que notre spécialiste maison du BASIC pose un diagnostic
(j'espère qu'il lui sera possible), voici un script de remplacement.
Rien de plus simple, pas la joliesse de l'ancien, mais il fait le boulot.
Quelques notes :
-- N'oubliez pas de rendre le script exécutable.# Va à /opt/local/bin/sfs-combine.sh ou encore à /root/my-applications/bin/sfs-combine.sh.
#
# Usage : Mettez les sfs que vous voulez combiner dans /mnt/home,
# -------- ouvrez une console et tapez < sfs-combine.sh > (sans les chevrons).
-- Utilise /mnt/zip -- la capacité dépend de la taille de votre MEV. Si vous
estimez que c'est trop exigu, on pourra en changer dans une 2e version.
Ajout : il utilise /mnt/zip comme « point de montage », ce qui ne prend
pas autant de MEV que la copie comme telle. Ça devrait être bon pour un
bout. Mais si cet arrangement logiciel vous cause des soucis, faites-le-
moi savoir. Comme j'ai dit, ça se change.
Commentaires constructifs bienvenus. Si vous avez des questions, n'hésitez
pas à les poser. À la bonne vôtre !
~~~~~~~~~~~~~~
Attention ! Version déjà caduque ! S.v.p. télécharger et installer
l'archive pet ci-dessous en lieu et place. Je laisse cependant affichée
cette version initiale, à des fins documentaires. -- musher0, 18-04-06
Code: Select all
#!/bin/bash
# Va à /opt/local/bin/sfs-combine.sh ou encore à /root/my-applications/bin/sfs-combine.sh.
#
# Usage : Mettez les sfs que vous voulez combiner dans /mnt/home,
# --------- ouvrez une console et tapez < sfs-combine.sh > (sans les chevrons).
#
####
# © Christian L'Écuyer, Gatineau (Qc), Canada, 2018-04-05. GPL3.
# (Alias musher0 [forum Puppy].) # Please see: https://opensource.org/licenses/GPL-3.0.
##########
# 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 toute
# version ultérieure choisie par vous).
# 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.
################ set -xe
nettoie () {
ls -1 --file-type /mnt/zip > /mnt/home/mnt-zip.lst
while read line;do umount /mnt/zip/$line;done < /mnt/home/mnt-zip.lst
rm -fr /mnt/zip/*
rmdir --ignore-fail-on-non-empty /mnt/zip/* 2>/dev/null
[ -d /mnt/home/tentative ] || mkdir -p /mnt/home/tentative
rm -fr /mnt/home/tentative/*
rmdir --ignore-fail-on-non-empty /mnt/home/tentative/* 2>/dev/null; }
cd /mnt/home
nettoie
clear;echo -e "\t\e[33m\e[4mCOMBINEUR D'ARCHIVES SFS, par musher0, 2018-04-05.\e[0m"
combien="";echo -e "\n\e[33mCombien de sfs voulez-vous combiner?\e[0m"
read combien
echo -e "\n\e[33mEn voici la liste :\e[0m"
ls -1 *.sfs | grep -v tentative | nl > fichiers;more fichiers
> liste.sfs
incorpor="";i="";i=1
echo;while [ "$i" -le "$combien" ]; do
echo -e "\e[33mS.v.p. taper le numéro d'un sfs à incorporer à partir de la liste ci-dessus :\e[0m"
read incorpor
awk '$1=='"$incorpor"' { print $2 }' fichiers >> liste.sfs
i=$(($i + 1))
done
confirme="" # Vérif.
echo -e "\n\e[33mLes sfs suivants seront combinés. Est-ce bien ce que vous souhaitez ?
(Taper 'o' ou 'O' pour 'oui'; toute autre touche quitte.)\e[0m"
more liste.sfs;read confirme
case "${confirme}" in y|Y|o|O) # Action
echo -e "\n\e[33mTrès bien. Merci de patienter pendant que la combinaison se fait.\e[0m"
while read line;do
mkdir /mnt/zip/"${line:0:6}"
mount $line /mnt/zip/"${line:0:6}"
done < liste.sfs
> /mnt/home/liste.rep
cd /mnt/zip
ls -1 >> /mnt/home/liste.rep
while read line;do rsync -az /mnt/zip/$line/* /mnt/home/tentative
wait
done < /mnt/home/liste.rep
cd /mnt/home
mksquashfs tentative/ tentative.sfs -no-progress -all-root -noappend -b 1048576 -comp xz -Xdict-size 100%
;;
*)exit
;;
esac
nettoie
rm -f /mnt/home/mnt-zip.lst;rm -f /mnt/home/fichiers
rm -f /mnt/home/liste.sfs;rm -f /mnt/home/liste.rep
echo -e "\n\n\n\e[33m\e[4mLa combinaison est terminée. Il ne vous reste qu'à
renommer l'archive sfs résultante « tentative.sfs »
et à la monter avec l'utilitaire « sfs_load ».\e[0m\n" # set +xe