scripts/scan-st/scan.sh
2024-01-08 14:38:13 +01:00

219 lines
5 KiB
Bash
Executable file

#!/bin/bash
# Laisser la boucle ci-dessous car elle permet au script de se répéter en entier
while :; do
count=
# Chemin par défaut
defpath="/home/t0mux/Cloud/1-ATELIER/1-ST"
# defpath="./scantest" # TEST
# Type document
while true; do
clear
echo "# Type de document ?";echo
echo " 1) PV"
echo " 2) BT"
echo " 3) Autre";echo
echo " G) Scanner via GUI"
echo -e " C) Changer le chemin de sortie (${defpath})\n"
if [ ! -z ${type} ]; then echo " i) Idem précédent ($type)"; fi
read -n1 -p ">" ntype
echo
case $ntype in
1) type=PV;break
;;
2) type=BT;break
;;
3) read -p "Type=" type;break
;;
c|C) if [ -f /usr/bin/zenity ]
then defpath=$(zenity --file-selection --directory)
else echo -e "\nZenity n'est pas installé, impossible de changer le chemin par défaut.\n"
fi
;;
g|G) if [ -f /usr/bin/simple-scan ]
then simple-scan
else echo -e "\nsimple-scan n'est pas installé. L'installer ? (O/n)"
read -n1 -p ">" scinst
if [ -z $scinst ]; then scinst=o; fi
echo
if [ "$scinst" = "o" -o "$scinst" = "O" ]
then if [ -f /usr/bin/apt ]; then sudo apt update && sudo apt install simple-scan -y; fi
if [ -f /usr/bin/pacman ]; then sudo pacman -Sy simple-scan; fi
if [ ! -f /usr/bin/apt -a ! -f /usr/bin/pacman ]; then echo -e "\nAucun gestionnaire de paquet pris en charge (apt/pacman)\n" && sleep 3; fi
fi
fi
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Particulier
while true; do
clear
echo "Type=$type";echo
echo "# Partenaire ?";echo
echo " 1) AVA-IPS"
echo " 2) BA2I"
echo " 3) BugBusters"
echo " 4) iTEC"
echo " 5) JBS"
echo " 6) Prestinfo"
echo " 7) VTI"
echo " 8) Autre"
if [ ! -z ${part} ]; then echo " i) Idem précédent ($part)"; fi;echo
read -n1 -p ">" npart
case $npart in
1) part=AVA-IPS;break
;;
2) part=BA2I;break
;;
3) part=BugBusters;break
;;
4) part=iTEC;break
;;
5) part=JBS;break
;;
6) part=Prestinfo;break
;;
7) part=VTI;break
;;
8) read -p "Partenaire=" part;break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Date
while true; do
clear
echo "Type=$type | Partenaire=$part";echo
echo "# Date ?";echo
echo " 1) Aujourd'hui (`date +%d/%m/%y`)"
echo " 2) Hier (`date -d "yesterday 13:00" '+%d/%m/%y'`)"
echo " 3) Autre"
if [ ! -z ${date} ]; then echo " i) Idem précédent ($date)"; fi
read -n1 -p ">" ndate
case $ndate in
1) date=`date +%y%m%d`;break
;;
2) date=`date -d "yesterday 13:00" '+%y%m%d'`;break
;;
3) echo; read -p "Date(DDMMYY)=" tmpdate
date=${tmpdate:4:2}${tmpdate:2:2}${tmpdate:0:2}
break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Lieu
while true; do
clear
echo "Type=$type | Partenaire=$part | Date=$date";echo
echo "# Lieu ?";echo
echo " 1) Gap"
echo " 2) Chorges"
echo " 3) Embrun"
echo " 4) Laragne"
echo " 5) Serres"
echo " 6) Autre"
if [ ! -z ${lieu} ]; then echo " i) Idem précédent ($lieu)"; fi
read -n1 -p ">" nlieu
case $nlieu in
1) lieu=Gap;break
;;
2) lieu=Chorges;break
;;
3) lieu=Embrun;break
;;
4) lieu=Laragne;break
;;
5) lieu=Serres;break
;;
6) read -p "Lieu=" lieu;break
;;
i|I) echo;break
;;
*)
echo "MAUVAIS CHOIX !"
;;
esac
done
# Numero intervention
clear
echo "Type=$type | Partenaire=$part | Date=$date | Lieu=$lieu";echo
if [ ! -z ${num} ]; then echo "Précédente intervention scannée : ${num} (i)"; fi
read -p "Numéro intervention=" chnum
if [ "$chnum" != "i" -a "$chnum" != "I" ]; then num=$chnum; fi
# Préparation des variables et des dossiers
rep1=20`echo ${date:0:2}-${date:2:2}`
date2=`echo ${date:0:2}-${date:2:2}-${date:4:2}`
rep2="${date2}_${lieu}"
filename="${date2}_${lieu}_${num}-${type}"
path="${defpath}/${part}/${rep1}/${rep2}"
if [ -f "${path}/${filename}.jpg" ]
then
echo -e "\nLe fichier de destination existe déjà. Que faire ?"
echo " E) Écraser"
echo " I) Incrémenter"
echo " A) Annuler"
echo
read -n1 -p "> " chex
case $chex in
e|E|é|É) echo;;
i|I) count=2 # OK
while :; do
if [ -f "${path}/${filename}${count}.jpg" ]
then ((count++))
else
break
fi
done
;;
esac
else
count=
fi
if [ ! -d "$path" ]; then mkdir -p "$path"; fi
# SCAN !
clear
echo "Type=$type$count | Partenaire=$part | Date=$date | Lieu=$lieu | Num inter=$num";echo
echo;echo Lancer le scan en appuyant sur une touche...
read
# Détection auto du scannerid
scannerid=$(scanimage -L | grep device | cut -d\` -f2 | cut -d\' -f1)
# Détection manuelle du scannerid
# lancer `scanimage -L` pour trouver "l'adresse sane" du scanner
# commenter la ligne de la détection auto, et décommenter celle ci-dessous
# scannerid=xxxxx:libusb:xxx:xxx
scanimage -d $scannerid --format jpeg --resolution 300 --mode Color >${path}/${filename}${count}.jpg && echo -e "\n${path}/${filename}.jpg scanné !\n" &
done