#!/bin/bash # this script shall be called by murasaki # 27 Jul 2003 by Masaki Shinomiya CAMDIR=/mnt/camera ;# need to be existing and described on /etc/fstab PHOTODIR=${CAMDIR}/dcim/100olymp ;# the directory name depends on your camera VIEWDIR=/mnt/windat/public/camera ;# directory the photoes copied to APPL=gqview ;# program name to be launched #APPL="" LOG=/dev/console ;# launch xconsole if you like to see echo "$0 $1" > $LOG echo -n "Called at " >> $LOG date >> $LOG MYNAME=$(basename $0) [ "$(/sbin/pidof $MYNAME)" = "" ] || exit ;# to aboid double call for i in run lock ;# /var/run in modern systems, /var/lock in old ones do if [ -f /var/$i/console.lock ]; then USER=$(cat /var/$i/console.lock) break fi done case $1 in start) cat /proc/scsi/scsi >> $LOG #cat /proc/scsi/scsi | grep -q OLYMPUS || exit ;# doesn't work. why? mount ${CAMDIR} >> $LOG 2>&1 [ -d ${PHOTODIR} ] || exit ls -dl ${PHOTODIR} >> $LOG 2>&1 if [ "${VIEWDIR}" != "" ] ;then rm -fR ${VIEWDIR}.bak >> $LOG 2>&1 [ -d ${VIEWDIR} ] && mv ${VIEWDIR} ${VIEWDIR}.bak >> $LOG 2>&1 mkdir ${VIEWDIR} >> $LOG 2>&1 && cp ${PHOTODIR}/* ${VIEWDIR} >> $LOG 2>&1 umount ${CAMDIR} >> $LOG 2>&1 else VIEWDIR=${PHOTODIR} fi if [ ${APPL} != "" ] ;then [ -d ${VIEWDIR} ] && [ "$(/sbin/pidof ${APPL} )" = "" ] && \ exec su - $USER -c "DISPLAY=':0' ${APPL} ${VIEWDIR} >> $LOG 2>&1" & fi sleep 1 ;# to aboid double call ;; stop) if [ ${APPL} != "" ] ;then [ "${VIWEDIR}" = "${PHOTODIR}" ] && killall ${APPL} >> $LOG 2>&1 fi umount ${CAMDIR} >> $LOG 2>&1 ;; *) echo "Usage: $0 start|stop" ;; esac exit