177 lines
5.6 KiB
Bash
Executable File
177 lines
5.6 KiB
Bash
Executable File
#!/bin/sh
|
||
################################################################################################
|
||
##
|
||
## Nom: doku2moin.sh
|
||
##
|
||
## Version: 0.1
|
||
##
|
||
## Licence: Creative Commons
|
||
##
|
||
## Comportement: Transformer une page de Dokuwiki est en page compatible avec le wiki Moinmoin.
|
||
##
|
||
##
|
||
##
|
||
################################################################################################
|
||
##
|
||
## Date de création: 15-12-2011
|
||
##
|
||
## Auteur: Gardouille
|
||
##
|
||
##
|
||
## Dernière modifications:
|
||
## 15-12-2011 - 0.1: Création du script
|
||
## -
|
||
# **********************************************************************************************
|
||
## //2011 - :
|
||
## -
|
||
## -
|
||
# **********************************************************************************************
|
||
## À Modifier:
|
||
## - Ajouter l'entête pour la syntaxe Moinmoin automatiquement dans le fichier
|
||
## - Ajouter une transformation pour:
|
||
## - http://packages.debian.org/search?keywords=NOM_PAQUET -> [[DebianPkg:NOM_PAQUET|Détail du paquet]]
|
||
## - http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=NOM_PAQUET -> [[DebianBug:NOM_PAQUET|Rapport de bug NOM_PAQUET]]
|
||
## - Modifier la transformation de // en '' pour ne pas prendre http:// (par exemple)
|
||
##
|
||
##
|
||
################################################################################################
|
||
|
||
|
||
|
||
# **********************************************************************************************
|
||
#
|
||
# Variables globales
|
||
#
|
||
# -----------------------------------------------------------
|
||
#
|
||
|
||
## Choix du mode d'exécution du script:
|
||
## Niveau 0 (mode_debug=0)
|
||
# Exécution automatique avec normalement aucune interaction avec l'utilisateur.
|
||
## Niveau 1 (mode_debug=1)
|
||
# ...
|
||
## Niveau 2 (mode_debug=2)
|
||
# L'installation n'est pas en automatique (aptitude, ...)
|
||
# La sortie des différentes commandes est envoyée sur la sortie standard
|
||
mode_debug=2
|
||
|
||
case "$mode_debug" in
|
||
0) ## Niveau minimum
|
||
# Les questions d'aptitude seront automatiquement validées
|
||
options="-y"
|
||
# La sortie standard sera redirigée dans un fichier de log
|
||
sortie="> /dev/null 2> \"${fichier_erreur}\""
|
||
;;
|
||
1) ## Niveau moyen
|
||
# Les questions d'aptitude seront automatiquement validées
|
||
options="-y"
|
||
# La sortie standard sera quand même affichée
|
||
sortie="2> \"${fichier_erreur}\""
|
||
;;
|
||
2) ## Niveau maximum
|
||
# Aucune options pour aptitude
|
||
options=""
|
||
# Le résultat des commandes reste sur la sortie standard
|
||
sortie=""
|
||
;;
|
||
esac
|
||
|
||
|
||
## Fichier contenant les dernières erreurs
|
||
fichier_erreur="/tmp/erreur_doku2moin.sh.tmp"
|
||
touch "${fichier_erreur}"
|
||
|
||
## Fichier à modifier
|
||
file_in=$1
|
||
## Fichier modifié
|
||
file_out="$1.moin"
|
||
## Fichier contenant toutes les expressions à appliquer
|
||
expression="sed_expression"
|
||
|
||
## Liste des expressions sed à appliquer à la commande
|
||
titre1="s/^====== /= /\ns/ ======$/ =/\n"
|
||
titre2="s/^===== /== /\ns/ =====$/ ==/\n"
|
||
titre3="s/^==== /=== /\ns/ ====$/ ===/\n"
|
||
titre4="s/^=== /==== /\ns/ ===$/ ====/\n"
|
||
titre5="s/^== /===== /\ns/ ==$/ =====/\n"
|
||
titre6="s/^= /====== /\ns/ =$/ ======/\n"
|
||
code="s/<code>/{{{/\ns/<\/code>/}}}/\n"
|
||
## cmd bash:
|
||
## dokuwiki: <code bash>
|
||
## moinmoin: {{{#!highlight bash
|
||
cmd_bash="s/<code \(bash\)>/{{{#!highlight \\\1/\n"
|
||
file="s/<file>/{{{/\ns/<\/file>/}}}/\n"
|
||
file_type="s/<file \(.*\) .*/{{{#!highlight \\\1/\n"
|
||
gras="s/\*\*/\'\'\'/g\n"
|
||
italique="s/\/\//\'\'/g\n"
|
||
#lien_externe similaire
|
||
#liste_puce similaire (-e 's/\(^ \)\*/\1\*/')
|
||
liste_num="s/\(^ *\)-/\\\11\./\n"
|
||
## Image:
|
||
# dokuwiki: {{:teeworlds_01.png|}}
|
||
# moinmoin: {{attachment:teeworlds_01.png}}
|
||
image="s/{{:\(.*\)|}}/{{attachement:\\\1}}/\n"
|
||
|
||
|
||
|
||
# Fin des variables globales
|
||
# -----------------------------------------------------------
|
||
# **********************************************************************************************
|
||
|
||
|
||
# **********************************************************************************************
|
||
#
|
||
# Fichiers globaux
|
||
#
|
||
# -----------------------------------------------------------
|
||
#
|
||
|
||
# Fin des fichiers globaux
|
||
# -----------------------------------------------------------
|
||
# **********************************************************************************************
|
||
|
||
|
||
# **********************************************************************************************
|
||
#
|
||
# Fonctions globales
|
||
#
|
||
# -----------------------------------------------------------
|
||
## Fonction d'affichage en fonction du mode debug choisi
|
||
echod() { [ "$mode_debug" -ge 2 ] && echo "(DEBUG) $*" ; }
|
||
echok() { [ "$mode_debug" -ge 2 ] && echo "(ok) $*" ; }
|
||
echoi() { [ "$mode_debug" -ge 1 ] && echo "(ii) $*" ; }
|
||
echow() { [ "$mode_debug" -ge 1 ] && echo "(!!) $*" ; }
|
||
echnk() { [ "$mode_debug" -ge 0 ] && echo "(EE) $*" ; }
|
||
|
||
# Fin des fonctions globales
|
||
# -----------------------------------------------------------
|
||
# **********************************************************************************************
|
||
|
||
|
||
|
||
# **********************************************************************************************
|
||
#
|
||
# Programme principale
|
||
#
|
||
# -----------------------------------------------------------
|
||
|
||
echo $titre1$titre2$titre3$titre4$titre5$titre6$code$cmd_bash$file$file_type$gras$italique$liste_num$image > $expression
|
||
|
||
sed --file="${expression}" "${file_in}" > "${file_out}"
|
||
|
||
echo "-------------------------------"
|
||
echo "-------------------------------"
|
||
echo "Rajouter au début du fichier (avant le titre):"
|
||
echo "#language fr
|
||
||<tablestyle=\"width: 100%; border: 0px hidden\">~-Traduction(s): [[$file_in|English]] - Français||
|
||
----
|
||
|
||
<<TableOfContents()>>"
|
||
|
||
exit 0
|
||
# Fin de la boucle principale
|
||
# -----------------------------------------------------------
|
||
# **********************************************************************************************
|
||
|
||
|