> Indeed.. This part just duplicates a lot of logic..
>
> umask 007
> for file in $WORKDIR/$INPUT/*; do
> if [ -f $filename -a -z "`lsof $filename 2>/dev/null`" ]; then
>
> echo $file | grep -qi 'crw$';
> if [ $? -gt 0 ]; then
> mv $noimage $WORKDIR/$NOIMAGE/`basename $noimage`
>
> else
> fn=`basename $filename`
> dcraw -e -c $filename > $WORKDIR/$JPEGOUT/${fn}.jpg
> chgrp users $WORKDIR/$JPEGOUT/${fn}.jpg
> mv $filename $WORKDIR/$RAWOUT/$fn
> fi
> fi
> done
>
> oh, btw.. to protect against launching multiple instances;
>
> if [ -f /var/lock/subsys/dcraw ]; then
> echo 'Lock-file found!'
> exit 1
> fi
> touch /var/lock/subsys/dcraw
> ....
> rm /var/lock/subsys/dcraw
>
> .. I would run such a script from cron rather than a backgrounded
> process looping..
Ok, that's better. Result:
#! /bin/bash
# Extract the jpeg preview from Canon digital EOS RAW data.
# Requires dcraw from Dave Coffin: http://www.cybercom.net/%7Edcoffin/dcraw/
# Thanks to Morten (umask is handy)
# Settings
WORKDIR=/data/samba-atalk/Users/RAW
INPUT=input
RAWOUT=raw
JPEGOUT=jpeg
NOIMAGE=noimage
umask 007
if [ ! -d $WORKDIR ] ; then
echo "Workdir: $WORKDIR not found"
exit 0
fi
if [ -f /var/lock/subsys/x-rawconvert ]; then
echo 'Lock-file found!'
exit 1
fi
touch /var/lock/subsys/x-rawconvert
for i in $INPUT $RAWOUT $JPEGOUT $NOIMAGE; do
if [ ! -d $WORKDIR/$i ] ; then
mkdir $WORKDIR/$i
chown root:users $WORKDIR/$i
fi
done
if [ -n "`ls $WORKDIR/$INPUT/`" ]; then
for file in $WORKDIR/$INPUT/*; do
if [ -f $file -a -z "`lsof $file 2>/dev/null`" ]; then
echo $file | grep -qi 'crw$';
if [ $? -gt 0 ]; then
mv $file $WORKDIR/$NOIMAGE/`basename $file`
else
fn=`basename $file`
dcraw -e -c $file > $WORKDIR/$JPEGOUT/${fn}.jpg
chgrp users $WORKDIR/$JPEGOUT/${fn}.jpg
mv $file $WORKDIR/$RAWOUT/$fn
fi
fi
done
fi
rm /var/lock/subsys/x-rawconvert
--
Ariën Huisken
_______________________________________________
tsl-discuss mailing list
[email protected]
http://lists.trustix.org/mailman/listinfo/tsl-discuss