]> gitweb.pimeys.fr Git - scripts-20-100.git/blob - cadre.sh
[bde/compta] scripts pour faciliter la vérification de répartition par catégories
[scripts-20-100.git] / cadre.sh
1 #!/bin/bash
2 # Génère un cadre de ce type :
3
4 #################################################################
5 ## Suite des paramètres passés au script ##
6 #################################################################
7
8 # Variable à changer pour modifier la taille du cadre obtenu
9 boxsize=65
10 bordersize=2
11
12 commentchar="#"
13 fillerchar=" "
14
15 text=$*
16
17 # Génération de plusieurs caractères
18 function gen_chars
19 {
20 local i
21
22 OUT=""
23
24 for ((i = "$2"; i>0; i--)); do
25 OUT="${OUT}$1"
26 done
27 }
28
29 textsize=${#text}
30
31 lenspaces=$((boxsize - textsize - 2*bordersize))
32
33 if [[ ${lenspaces} -lt 0 ]];
34 then
35 echo "Texte trop grand pour le cadre"
36 exit 1
37 fi
38
39 leftspaces=$((lenspaces/2))
40
41 if [[ $((${lenspaces} % 2)) -eq 0 ]];
42 then
43 rightspaces=$((lenspaces/2))
44 else
45 rightspaces=$((lenspaces/2 + 1))
46 fi
47
48 # Première ligne de #
49 gen_chars "${commentchar}" ${boxsize}
50 echo "${OUT}"
51 # Frontière gauche
52 gen_chars "${commentchar}" ${bordersize}
53 echo -n "${OUT}"
54 # Filler gauche
55 gen_chars "${fillerchar}" ${leftspaces}
56 echo -n "${OUT}"
57 # Texte central
58 echo -n "${text}"
59 # Filler droit
60 gen_chars "${fillerchar}" ${rightspaces}
61 echo -n "${OUT}"
62 # Frontière droite
63 gen_chars "${commentchar}" ${bordersize}
64 echo "${OUT}"
65 # Deuxième ligne de #
66 gen_chars "${commentchar}" ${boxsize}
67 echo "${OUT}"