Commit d925e329 authored by Jean-Charles BRAUN's avatar Jean-Charles BRAUN

Simplify loop and conditions

parent a383da6b
......@@ -7,6 +7,9 @@ YLW='\033[0;33m'
PRL='\033[0;35m'
WHT='\033[0;37m'
# Définition des variables
state=(ouvert fermé)
# Requête auprès de l'utilisateur (permet une interruption momentanée du script)
read -p "$(echo -e ${PRL}Voulez-vous traiter le répertoire courant de manière récursive ?${WHT} [o/N]) " prompt
......@@ -72,6 +75,9 @@ do
pathdata=`xmlstarlet select -N ns=http://www.w3.org/2000/svg -t -v "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@d" "$PATHNAME/$FILENAME"_tmp.svg`
nodedata=`xmlstarlet select -N ns=http://www.w3.org/2000/svg -t -v "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@sodipodi:nodetypes" "$PATHNAME/$FILENAME"_tmp.svg`
# Paramétrage par défaut de la variable 'zvalue'
zvalue=0
# Test du chemin pour vérifier s'il est fermé par la commande 'closepath'
if [[ ${pathdata:(-1)} = 'z' || ${pathdata:(-1)} = 'Z' ]]
then
......@@ -79,62 +85,42 @@ do
# Suppression de la commande 'closepath'
adjust=${pathdata:0:-1}
xmlstarlet edit --inplace -N ns=http://www.w3.org/2000/svg -u "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@d" -v "$adjust" "$PATHNAME/$FILENAME"_tmp.svg
zvalue=1
fi
# Lancement d'Inkscape avec l'extension Flatten Bézier
inkscape --file="$PATHNAME/$FILENAME"_tmp.svg --select=$item --verb=org.ekips.filter.flatten.noprefs --verb=FileSave --verb=FileQuit
# Lancement d'Inkscape avec l'extension Flatten Bézier
inkscape --file="$PATHNAME/$FILENAME"_tmp.svg --select=$item --verb=org.ekips.filter.flatten.noprefs --verb=FileSave --verb=FileQuit
# Test pour déterminer si le chemin était fermé
if (( $zvalue == 1 ))
then
# Re-chargement de l'attribut 'd'
pathdata=`xmlstarlet select -N ns=http://www.w3.org/2000/svg -t -v "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@d" "$PATHNAME/$FILENAME"_tmp.svg`
# Test pour déterminer la présence de l'attribut 'nodetypes'
if [[ -n $nodedata ]]
then
# Suppression de la dernière valeur dans l'attribut 'nodetypes'
node_cut=${nodedata:0:-1}
# Remplacement des valeurs 's', 'z' et 'a' par la valeur 'c' dans l'attribut 'nodetypes'
node_mod=${node_cut//[sza]/c}
xmlstarlet edit --inplace -N ns=http://www.w3.org/2000/svg -u "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@sodipodi:nodetypes" -v "$node_mod" "$PATHNAME/$FILENAME"_tmp.svg
# Évaluation du nombre de points
nbnode=`echo -n $node_mod | wc -m`
else
# Absence d'information sur l'attribut 'nodetypes'
nbnode='?'
fi
# Correction des coordonnées dans l'attribut 'd'
newcoord=`echo $pathdata | awk -F'L' '{$NF=""; print $0}'`
xmlstarlet edit --inplace -N ns=http://www.w3.org/2000/svg -u "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@d" -v "$newcoord" "$PATHNAME/$FILENAME"_tmp.svg
fi
# Écriture du fichier .log
echo "$item ($nbnode pts) -> fermé" >> $PATHNAME/$FILENAME.log
else
# Lancement d'Inkscape avec l'extension Flatten Bézier
inkscape --file="$PATHNAME/$FILENAME"_tmp.svg --select=$item --verb=org.ekips.filter.flatten.noprefs --verb=FileSave --verb=FileQuit
# Test pour déterminer la présence de l'attribut 'nodetypes'
if [[ -n $nodedata ]]
then
# Remplacement des valeurs 's', 'z' et 'a' par la valeur 'c' dans l'attribut 'nodetypes'
node_mod=${nodedata//[sza]/c}
xmlstarlet edit --inplace -N ns=http://www.w3.org/2000/svg -u "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@sodipodi:nodetypes" -v "$node_mod" "$PATHNAME/$FILENAME"_tmp.svg
# Test pour déterminer la présence de l'attribut 'nodetypes'
if [[ -n $nodedata ]]
then
# Évaluation du nombre de points
nbnode=`echo -n $node_mod | wc -m`
else
# Remplacement des valeurs 's', 'z' et 'a' par la valeur 'c' dans l'attribut 'nodetypes'
node_mod=`echo ${nodedata//[sza]/c} | cut -c $((zvalue+1))-${#nodedata}`
xmlstarlet edit --inplace -N ns=http://www.w3.org/2000/svg -u "/ns:svg/ns:g[contains(@id,'layer3')]/ns:path[contains(@id,'$item')]/@sodipodi:nodetypes" -v "$node_mod" "$PATHNAME/$FILENAME"_tmp.svg
# Absence d'information sur l'attribut 'nodetypes'
nbnode='?'
fi
# Évaluation du nombre de points
nbnode=`echo -n $node_mod | wc -m`
else
# Écriture du fichier .log
echo "$item ($nbnode pts) -> ouvert" >> $PATHNAME/$FILENAME.log
# Absence d'information sur l'attribut 'nodetypes'
nbnode='?'
fi
# Écriture du fichier .log
echo "$item ($nbnode pts) -> ${state[$zvalue]}" >> $PATHNAME/$FILENAME.log
done
# Export du calque 'layer3' vers un fichier EPS
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment