« Auto-éditer un wikilivre/Auto-référencer/INSTALLER.sh » : différence entre les versions

Contenu supprimé Contenu ajouté
m WL:RD : ! mise en page, * diverses retouches
WL:RD : * diverses retouches, ! mise en page
Ligne 2 :
#! /bin/bash
#P Fichier : INSTALLER.sh
#P Syntaxe : INTALLERINSTALLER.sh <projet.prj>[ ouliste INTALLER.sh| <projet.list>pour moi | pour tous | pour admin ]
#P Exemple : './INSTALLER.sh ~/Annexer/annexer.list' (dans le répertoire ~/tmp)
#P ou : './INSTALLER.shlorsque annexer.list'les dansfichiers leont répertoireété tmp.téléchargés :
#P si annexer'.list/INSTALLER.sh ypour estmoi' présent.(dans le répertoire ~/tmp)
#P créé le : 25 mai 2020 par l'utilisateur wikilivres Goelette Cardabela.
#P modifié : le 2 juin 2020 pour ajouter la commande de copie dans le
#P répertoire de l'utilisateur.
#P modifié : le mercredi 3 juin 2020 par GC pour corriger la syntaxe de la
#P ligne de commande
#P modifié : le 4 juin 2020 Correction d'un défaut de filtrage qui supprime le
#P caractère '\' devant '033[' code de couleur pour les lignes
#P d'affichage. ligne 306 dans la version du 4 juin 2020.
#P
#P Ce fichier exécutable est destiné àpermet d'installer l'aplication Annexer pour créer la
#P la page 'Annexe' des livres de Wikilivres.
#P Le fichier de liste contenant les liens vers les fichiers à télécharger est
#P censé préexisterexister dans le répertoire ~/tmp. Annexr(Annexer.prj ou Annexer.list)
#P
 
#O Vider l'écran. (Clear screen)
Ligne 18 ⟶ 26 :
#P Pour les traductions '. gettext.sh' en tête du fichier.
#P . gettext.sh
 
#P Créer la fonction d'affichage 'syntaxe'.
function put_syntax #P peut-être à revoir ...
{
echo "$(gettext ' Syntaxe : ')"
echo "$(gettext ' INSTALLER.sh [ liste | pour moi | pour tous | pour admin ] ')"
echo "$(gettext ' Exemples dans le répertoire d installation : ~/tmp ')"
echo "$(gettext ' -> example ./INSTALLER.sh annexer.list, pour télécharger les articles depuis wikilivres. ')"
echo "$(gettext ' -> example ./INSTALLER.sh pour moi, pour copier les codes dans ~/Annexer. ')"
echo ""
exit 0
}
 
#P Créer la fonction 'Nettoyage des répertoires' avec l'autorisation de l'utilisateur.
function make_clean
{
#O Afficher ATTENTION suppression du contenu du répertoire ~/tmp en rouge clignotant.
echo -e "\033[5;31m ATTENTION ! Suppression du contenu du répertoire ~/tmp \033[0m "
 
#O Afficher " Ctrl-C pour quitter."
echo ""
echo " Ctrl-C pour quitter."
#O Attendre 'un' (un seul) caractère de réponse.
read -n1 -p -s Inkey
echo "Inkey = "$Inkey
rm -f ~/tmp/*.tmp; rm -f ~/tmp/*.txt; rm -f ~/tmp/temp/*.tmp; rm -f ~/tmp/temp/*.txt; rm -f ~/tmp/temp/*.sh;
}
 
#O Si le premier paramètre de la ligne de commandes commence par ''pour''
Ligne 28 ⟶ 64 :
then
{
echo -n "Cette option de tests 'pour moi' doit copier tous les fichiers dans unle"
echo "répertoire 'Annexer', sous le répertoire principalracine de l'utilisateur de l'ordinateur."
if test -w ~/Annexer; then echo -e "\033[5;33m Le répertoire 'Annexer' pré-existe, il doit être supprimé ou renommé. \033[0m "; exit -1; fi
mkdir ~/Annexer ~/Annexer/bin; cp ~/tmp/bin/* ~/Annexer/bin/.; chmod 755 ~/Annexer/bin/*
ln -s -v ~/Annexer/bin/annexer ~/Annexer/annexer
mkdir ~/Annexer/src; cp ~/tmp/src/* ~/Annexer/src/.
mkdir ~/Annexer/doc; cp -R ~/tmp/doc/* ~/Annexer/doc/.
echo "LaLe suppression du contenunettoyage du répertoire '~/tmp' n'est pas envisagée avec l'option de tests 'pour moi'."
exit 0
}
Ligne 41 ⟶ 79 :
then
{
echo "Version française."
echo "Cette option 'pour tous' n'est pas encore en service."
# copie les fichiers dans les répertoires :"
#w echo " /usr/local/bin "
#w echo " /usr/local/src/annexer/*.sh "
#w mkdir /usr/local/src/annexer; cp ~/tmp/src/*.sh /usr/local/src/annexer/.
#w echo " /usr/local/src/doc/annexer/*.sh/* "
#w mkdir /usr/local/src/doc/annexer; cp -R ~/tmp/doc/* /usr/local/src/doc/annexer/.
#w echo " /usr/local/share/doc/annexer/copyright, README"
#w echo " /usr/local/share/man/man1/annex.1.gz"
#w echo " /usr/local/share/man/fr/man1/annex.1.gz"
#w echo " /usr/local/share/man/es/man1/annex.1.gz"
make_clean
exit 0
}
Ligne 50 ⟶ 100 :
{
echo "Cette option 'pour administrateurs' n'est pas encore en service."
make_clean
exit 0
}
Ligne 65 ⟶ 116 :
#O et quitter avec un retour à -1
if ! test $1; then echo "Syntaxe : $0 [ liste | pour moi | pour tous | pour admin ]"; exit -1; fi
#P Version internationalisée: if ! test $1; then put_syntax; fi
#O Si le premier paramètre de la ligne de commandes commence par ''pour''
Ligne 249 ⟶ 301 :
#O Tant que l'on peut lire des lignes du fichier de liste Destfile.txt
#O (qui est un fichier téléchargé du serveur wikibooks)
#P sed /\\/\\\\/g pour éviter que le caractère '\' soit supprimé
#P par html_data_conversion.
while read txt
do
echo $txt | sed -f $Datadir/html_data_conversions | sed "s/033\[/\\\033\[/g" >> $Destdir/temp/$Destfile
cat $Destdir/temp/$Destfile | grep -v "div" | sed s/\'\'//g | sed s/\'#!/#!/g | sed '/^$/d' > $Destdir/src/$Destfile
done < "$Destfile.txt"
Ligne 284 ⟶ 338 :
#O Fin du tq shell.prj
done < $Datadir/shell.prj
#O Supprimer tous les fichiers intermédiares *.txt du répertoire tmp
rm *.txt
 
#O NettoyageAfficher desla syntaxe pour copier les fichiers dans les répertoires.
put_syntax
exit 0 #w demander avant de supprimer !
rm -f ~/tmp/*.tmp; rm -f ~/tmp/*.txt; rm -f ~/tmp/temp/*.tmp; rm -f ~/tmp/temp/*.txt; rm -f ~/tmp/temp/*.sh;
</syntaxhighlight>
{{AutoCat}}