60 lines
2.0 KiB
Bash
Executable File
60 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
mysql --user=root --password="$(pass show sevenkeys/mysql)" <createtable.sql
|
|
|
|
printf "scantap: Enter name of storage box: "
|
|
read storageAreaName
|
|
|
|
storageAreaId="$(mysql --silent --silent --user=root --password="$(pass show sevenkeys/mysql)" -e "USE sevenkeys; SELECT Id FROM StorageArea WHERE Name = '$storageAreaName';")"
|
|
if test -z "$storageAreaId"; then
|
|
echo "scantap: No storage area named \"$storageAreaName\"" >&2
|
|
exit 1
|
|
fi
|
|
|
|
startPosition="$(mysql --silent --silent --user=root --password="$(pass show sevenkeys/mysql)" -e "USE sevenkeys; SELECT Position FROM CardScan WHERE StorageAreaId = '$storageAreaId' ORDER BY Position DESC LIMIT 1;")"
|
|
if test "$?" -ne "0"; then
|
|
echo "scantap: Failed to establish starting position" >&2
|
|
exit 1
|
|
fi
|
|
position=$((startPosition + 1))
|
|
|
|
printf "scantap: Enter mode (foil/nonfoil): "
|
|
read foilMode
|
|
outputDir="images/$foilMode"
|
|
mkdir -p "$outputDir"
|
|
|
|
ADD_CARDS=0
|
|
echo "scantap: Beginning scan loop"
|
|
while true; do
|
|
scanimage --format=png --batch=tmp%d.png --batch-count=2 --source "ADF Duplex" --mode Color --page-width 63mm --page-height 88mm 2>/dev/null
|
|
|
|
# scanimage exits with code 7 if no documents are available in scanner
|
|
if test $? -eq 7; then
|
|
if test $ADD_CARDS -eq 0; then
|
|
ADD_CARDS=1
|
|
echo "scantap: No more cards in feeder" >&2
|
|
fi
|
|
|
|
continue
|
|
fi
|
|
ADD_CARDS=0
|
|
|
|
if ! test -e tmp1.png || ! test -e tmp2.png; then
|
|
echo "scantap: Failed to create temporary image files" >&2
|
|
exit 1
|
|
fi
|
|
|
|
key="$(mysql --silent --silent --user=root --password="$(pass show sevenkeys/mysql)" -e "USE sevenkeys; INSERT INTO CardScan (StorageAreaId, Position) VALUES ('$storageAreaId', '$position'); SELECT Id FROM CardScan ORDER BY Id DESC LIMIT 1;")"
|
|
if test "$?" -ne "0"; then
|
|
echo "scantap: Failed to get key from database" >&2
|
|
exit 1
|
|
fi
|
|
position=$((position + 1))
|
|
|
|
convert -rotate 180 tmp1.png tmp1.png
|
|
convert -rotate 180 tmp2.png tmp2.png
|
|
|
|
mv tmp1.png "$outputDir/${key}_back.png"
|
|
mv tmp2.png "$outputDir/${key}_front.png"
|
|
done
|