générer un bouton aléatoire pour un site - retour accueil
git clone git://bebou.netlib.re/rw
Log | Files | Refs | README |
rw (1468B)
1 #! /bin/sh 2 3 tmpd="$(mktemp -d)" 4 trap "rm -rf $tmpd" EXIT INT QUIT 5 6 usage() { 7 <<-. cat 8 Générer une sorte de bouton aléatoire pour un site 9 10 Usage : rw [-h] -d dossier [-t texte] 11 12 * -d : le chemin du dossier contenant le site (obligatoire) 13 * -t : le texte à afficher pour les liens (facultatif) 14 par défaut : ❓🤔❓🤔❓🤔❓🤔❓🤔 15 16 Exemples : 17 18 rw -h # Afficher ce texte 19 rw -d public # générer le "bouton" pour le site dans le dossier public 20 rw -d public -t blabla # générer le "bouton" pour le site dans le dossier public avec "blabla" comme lien 21 . 22 } 23 24 while getopts "hd:t:" opt; do 25 case $opt in 26 ( d ) d="$OPTARG" ;; 27 ( t ) t="$OPTARG" ;; 28 ( h ) usage; exit ;; 29 ( * ) echo "Option inconnue"; usage; exit 1;; 30 esac 31 done 32 33 [ -z "$d" ] && { echo "Chemin vers le dossier obligatoire" >&2; exit 1; } 34 35 find "$d" -name '*.html' -type f | sed -E 's,[^/]*/,,' > "$tmpd/files" 36 [ ! -s "$tmpd/files" ] && exit 0 37 38 nb="$(< "$tmpd/files" wc -l)" 39 40 < /dev/urandom tr -dc '0-9\n' | 41 grep -oE '[0-5]..' | 42 head -n"$(( $nb * 2))" | 43 paste - - > "$tmpd/random" 44 45 size="$(echo "2500/$nb" | bc)" 46 [ "$size" -lt "10" ] && size=10 47 [ "$size" -gt "50" ] && size=50 48 49 paste "$tmpd/files" "$tmpd/random" | 50 tr '\t\n' '\0' | 51 xargs -0 printf "<a href='/%s' style='position: absolute; font-size: $size; left:%s; top: %s; text-decoration: none'>${t:-'❓🤔❓🤔❓🤔❓🤔❓🤔'}</a>\n" | 52 shuf 53