1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
| #!/bin/bash
# Definition des variables
USER="toto"
SERVER="tata"
DIR_ORIG="/Users/toto/scan"
TRASH="/Users/toto/.Trash/"
ID_USER="2"
CD_APP="/Applications/ACCES/DEVELOPER/cocoaDialog.app"
CD="$CD_APP/Contents/MacOS/CocoaDialog"
## Fonctions auxiliaires de mise en forme
# ,----[ tty colors ]
# | 0 1 2 3 4 5 6 7
# | black red green yellow blue magenta cyan grey
# `----
# [jack] 151230 cf. `man terminfo'
# - setaf (set ANSI foreground) and setab (set ANSI background)
# - smso and rmso (enter and exit standout mode (highlight))
# - smul and rmul (begin and end underlining)
#
# Other capabilities to enter various highlighting modes include:
# - blink (blinking)
# - bold (bold or extra bright)
# - dim (dim or half-bright)
# - invis (blanking or invisible text)
# - prot (protected)
# - rev (reverse video)
# - sgr0 (turn off all attribute modes)
# - smacs (enter alternate character set mode)
# - rmacs (exit alternate character set mode).
#
# Turning on any of these modes singly may or may not turn off other modes.
KR_COL_TEXT=7 # grey
KR_COL_OK=2 # green
KR_COL_NOK=1 # red
kr_text() { tput rev; tput setaf ${KR_COL_TEXT}; }
kr_ok() { tput setaf ${KR_COL_OK}; }
kr_nok() { tput blink; tput setaf ${KR_COL_NOK}; }
kr_end() { tput sgr0; }
# Usage: kr_echo [-n] [-e] "Texte" ["result"]
# -n : pas de retour à la ligne
# -e : "result" est affiché comme une erreur
kr_echo() {
n_opt=""
ok="$(kr_ok)"
case "$1" in
"-n") n_opt=$1 ; shift ;;
esac
case "$1" in
"-e") ok="$(kr_nok)" ; shift ;;
esac
echo -e $n_opt "$(kr_text)$1${ok}$2$(kr_end)"
}
## Programme principal
# Déplacement dans le dossier des courriers scannés (*.jpg ou *.pdf)
kr_echo -n "Déplacement au dossier ..... "
cd $DIR_ORIG && kr_echo "" "OK" || { kr_echo -e "" "Echec"; exit 1; }
# 1. Traitement des fichiers pdf
# Test de l'existence des fichiers pdf
if ! ls *.pdf >/dev/null 2>&1; then
kr_echo "Pas de fichier pdf à convertir"
else
# Récupération des fichiers pdf
# La liste des fichiers (dans un tableau)
pdf_files=( *.pdf )
# Le nombre de fichiers pdf
nb_pdf=${#pdf_files[@]}
# Traitement des fichiers Pdf2jpg
kr_echo "Traitement des ${nb_pdf} fichiers pdf avant envoi :"
/Users/krislec/Shell_scripts/pdf2jpg.sh
fi
# 2. Traitement des fichiers jpg
# On vérifie s'il y a des fichiers *.jpg à traiter
if ! ls *.jpg >/dev/null 2>&1; then
kr_echo "Pas de fichier jpg à convertir"
exit 0
fi
# Récupération des fichiers jpg
# La liste des fichiers (dans un tableau)
jpg_files=( *.jpg )
# Le nombre de fichiers jpg
nb_jpg=${#jpg_files[@]}
# Optimisation des fichiers jpg (nécessite d'avoir installé ImageOptim)
kr_echo -n "Optimisation des ${nb_jpg} fichiers images ..... "
/Applications/ImageOptim.app/Contents/MacOS/ImageOptim *.jpg > /dev/null 2>&1
kr_echo "" "OK"
# Test de la connexion SSH
kr_echo -n "Connexion SSH sur $SERVER ....."
ssh -q -p 2210 -o ConnectTimeout=5 $USER@$SERVER echo > /dev/null
if [ $? == "255" ]; then
kr_echo -e "Echec !"
exit 0
else
kr_echo "OK"
fi
# Transfert des fichiers *jpg vers le dossier du user
nb_file=0
all_res=0
for file in "${jpg_files[@]}"; do
echo "$((nb_file * 100 / nb_jpg)) $((nb_file * 100 / nb_jpg))% copie de ${file}..." # pour CocoaDialog
out=$(scp -P 2210 $file toto@tata:/path/to/users/$ID_USER/scan/ 2>&1)
res=$?
if test $res -eq 0; then
kr_echo "${out}"
else
kr_echo -e "${out}" "res = $res"
all_res=$res
fi 1>&2 # pour le Terminal
((nb_file++))
done > >($CD progressbar --title "Transfert")
# Test du succèx global
if test ${all_res} -ne 0 ; then
# Echec du transfert
kr_echo -e "Transfert des courriers ..... " "Echec."
else
# Le transfert ayant réussi, on supprime les fichiers *.jpg en local to trash.
kr_echo "Transfert des courriers ..... " "OK"
# Nombres de fichiers envoyés
kr_echo "*** ${nb_jpg} Courrier(s) transféré(s) ***"
# osascript -e 'display dialog "$FILECOUNT Courrier(s) transféré(s)."'
# Suppression des pages
mv "${jpg_files[@]}" "${TRASH}/"
fi |