File: fimscan.sh

package info (click to toggle)
fim 0.7.1-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,048 kB
  • sloc: cpp: 32,769; ansic: 4,507; makefile: 1,549; sh: 1,502; perl: 189; exp: 28; awk: 9
file content (51 lines) | stat: -rwxr-xr-x 2,006 bytes parent folder | download | duplicates (8)
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
#!/bin/sh

# This sample scripts shows the use of fim for assisted batch scanning in a X free environment.

function die()  { echo " [!] : " $@ ; exit 1 ; }
function info() { echo " [*] : " $@ ; }
function askn() { local c ; c='' ; info $@ ; read c ; if test "$c" != "y" -a  "$c" != "Y"  ; then return -1 ; fi ; return  0 ; }
function asky() { local c ; c='' ; info $@ ; read c ; if test "$c" != "n" -a  "$c" != "N"  ; then return 0  ; fi ; return -1 ; }
function askexit() { asky "are you sure you want to exit [Y/n]?" || return 0 ; info "ok. exiting now..." ; exit ; }

[[ $1 != "" ]] && { info "this is a sample script using fim and scanimage...  invoke it without arguments please." ; exit ; }

shopt -s expand_aliases || die "no aliases ? you should update your bash shell.."
scanimage --version 2>&1 > /dev/null || die "no scanimage ?"

GEOMETRY=' -l0mm -t0mm -x210mm -y300mm'
LODEPTH='--depth 1'
HIDEPTH='--depth 32'
HIRES='--resolution 200'
LORES='--resolution 20'
FORMAT='--format=tiff'
FORMAT=
alias scan.a4='scanimage $GEOMETRY $HIDEPTH $HIRES $FORMAT'
alias scan.lo='scanimage $GEOMETRY $LODEPTH $LORES $FORMAT'
alias scan='scan.a4'

alias filter_bugged_scanimage_pnm="grep -v 'scanimage.*backend'"

DIR="${TMPDIR-/var/tmp}/fbscan-$$"
TF=$DIR/scan.fim.tmp

# we must have write permissions in that directory
mkdir -p $DIR	|| exit 1

# we want that directory clean after this script execution, no matter what happens
trap "rm -rf $DIR" EXIT

i=1;
FN=`printf "scan-%004d.pnm" "$i"`

while !  askn "do you to wish start scanning ? we begin with $FN [y/N]" ; do askexit ; done

for ((i=1;i<100;i+=0))
do
	info "scanning $FN..."
	scan.lo | filter_bugged_scanimage_pnm | fim -i -c 'bind "y" "return 0;";bind "n" "return -1;";status "press y to scan this image in high resolution. press n otherwise."'  && scan.hi > $FN
	if test "$?" = "0" ; then ((++i))  ; fi
	FN=`printf "scan-%004d.pnm" "$i"`
	while !  askn "do you wish to continue scanning ? we continue with $FN [y/N]" ; do askexit ; done
done