Article View: es.comp.os.linux.programacion
Article #6798Script para extraer fotos de la BenQ 1500
From: Reinoso G.
Date: Sat, 17 May 2003 13:20
Date: Sat, 17 May 2003 13:20
149 lines
6236 bytes
6236 bytes
Hola
aqu� va un peque�o script que he conseguido hacer para extraer las fotos
de la c�mara digital DC1500, la cual a priori no se puede montar o al
menos yo no lo consigo.
Si veis algun fallo o algo mejorable posteadlo. De momento no s� donde
colgarlo pero el ftp de ecol parece un buen sitio �no? :)
Lo mando al grupo porque es contestaci�n a otro hilo.
Antes de usarlo recordad configurar las opciones.
Saludos.
-----------------------------------------------------
#!/bin/bash
# Script para extraer todas las fotos de la c�mara BenQ DC-1500 a un
# directorio. Ver las opciones de configuraci�n mas abajo.
# Requiere el paquete cdrecord
# Funcionanamiento:
# * comprobar si somos root: necesitamos serlo; si no se sale
# * hacer un cdrecord --scanbus a ver si aparece la c�mara
# - si no apareciere mirar en el dir de los m�dulos por si hubiera
# que cargarlos: se cargan y se repite
# - si a�n as� no aparece avisar al usuario (puede que est� apagada)
# * extraer con readcd todo a partir del sector 25 a un fichero en /tmp
# * montar ese fichero (crear directorio en /tmp como punto de montaje)
# * crear en el dir de las fotos puesto como opci�n un subdir nuevas-fecha
# * copiar el subdirectorio de las fotos en el dir nuevo creado
# * borrar las cosas de tmp
# Llamada:
# sacafotos [volcar]
# El par�metro volcar sustituye a la opci�n "volcar" explicada m�s abajo.
# Esto podr�a ponerse para que se ejecute autom�ticamente al detectar el nuevo
# dispositivo con el paquete hotplug o algo as�.
# TODO: Se le podr�a a�adir que detecte si el kernel del usuario soporta FAT y
# de no ser as� cargar el m�dulo correspondiente.
# Tambien idear una soluci�n elegante al problema de hallar dos fotos con el
# mismo nombre ya en el directorio.
# Y ser�a bueno un control de errores.
# Script By Reinoso G. 17-5-03
################ O P C I O N E S #######################################
# Usuario de las fotos (para fijar el directorio home y los permisos):
# usuario=reinoso
usuario=reinoso.users
# usuario=root
# Directorio raiz de las fotos:
dirfotos=/home/reinoso/fotos
# Directorio donde volcar las fotos nuevas como una cadena de formato de
# 'date' por ejemplo (subdirectorio de dirfotos):
volcar=+%d.%m.%y
# volcar=+Nuevas-%d.%m.%y
# volcar=+%d de %B de %Y
# M�dulo de interface USB:
# puede ser usb-ohci, usb-uhci o uhci u otro, si lo tienes compilado en el
# kernel comenta esta opci�n:
ohci=usb-ohci
# ohci=usb-uhci
# ohci=uhci
################ C � D I G O ###########################################
if [ $1 ]; then $volcar
if [ ! $USER = root ]
then
echo Para poder funcionar este script debe ejecutarlo el superusuario.
exit 1
fi
echo Buscando la c�mara BenQ DC1500...
dev=`cdrecord -s --scanbus | grep 1500 | cut -f2`
if [ -z $dev ] # no detectada
then
rev=`uname -r` # puede ser cosa del m�dulo de mass-storage
if [ -f "/lib/modules/$rev/kernel/drivers/usb/storage/usb-storage.o" ] &&
(! lsmod | grep storage > /dev/null)
then
echo Cargo el m�dulo de almacenamiento masivo
modprobe -k usb-storage
dev=`cdrecord -s --scanbus | grep 1500 | cut -f2`
fi
fi
if [ -z $dev ] && ! [ -z $ohci ] # no detectada
then # a ver si es del ohci
if [ -f "/lib/modules/$rev/kernel/drivers/usb/$ohci.o" ] &&
(! lsmod | grep $ohci > /dev/null)
then
echo Cargo el m�dulo de interfaz USB
modprobe -k $ohci
dev=`cdrecord -s --scanbus | grep 1500 | cut -f2`
fi
fi
if [ -z $dev ]
then
echo
echo No puedo detectar la c�mara. Comprueba que est� conectada al PC y
echo encendida en modo usb-storage. Puedes hacer un cdrecord --scanbus
echo para comprobar si aparece.
exit 2
fi
echo �C�mara encontrada en $dev!
echo
echo Extrayendo el contenido...
echo ----------------------------------
readcd -s -sectors=25 -dev=1,0,0 -f="/tmp/camara.raw"
echo ----------------------------------
echo
mkdir /tmp/sacafotos
mount /tmp/camara.raw /tmp/sacafotos -o loop,umask=111
# Las fotos est�n ahora en /tmp/sacafotos/dcim/100_benq/
volcar=$dirfotos/`date "$volcar"`
echo Moviendo las fotos al directorio $volcar...
mkdir $volcar
mv -f /tmp/sacafotos/dcim/100_benq/* $volcar
chown -R $usuario $volcar
echo
echo Hecho.
------------------------------------------------------
--
�������������������������������������������������������������������������
�� Reinoso G. EA4BAO r einoso.bao@wanadoo.e s ��
�� http://perso.wanadoo.es/reinoso.bao ��
�������������������������������������������������������������������������
Technical Details
Message-ID:
<slrnbccdpb.qt.reinoso@EA4BAO.PLLANO.ESP.EU>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!nntp.cs.ubc.ca!cyclone.bc.net!sjc70.webusenet.com!rip!news.webusenet.com!prodigy.com!news.astraweb.com!news-small.astraweb.com!cox.net!news-xfer.cox.net!mainake.escomposlinux.org!reboot.escomposlinux.org!news-7.escomposlinux.org!newsShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,97ab8c1645726889,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-05-17 06:22:15 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!nntp.cs.ubc.ca!cyclone.bc.net!sjc70.webusenet.com!rip!news.webusenet.com!prodigy.com!news.astraweb.com!news-small.astraweb.com!cox.net!news-xfer.cox.net!mainake.escomposlinux.org!reboot.escomposlinux.org!news-7.escomposlinux.org!news From: "Reinoso G." <reinoso@probando.com> Newsgroups: es.comp.os.linux.programacion Subject: Script para extraer fotos de la BenQ 1500 Date: Sat, 17 May 2003 15:20:43 +0200 Organization: ecolnet Lines: 149 Message-ID: <slrnbccdpb.qt.reinoso@EA4BAO.PLLANO.ESP.EU> Reply-To: rei noso.bao@wanadoo.e s NNTP-Posting-Host: 80.103.5.80 Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: tro.champinet.es 1053177729 3388 80.103.5.80 (17 May 2003 13:22:09 GMT) X-Complaints-To: reboot@escomposlinux.org NNTP-Posting-Date: Sat, 17 May 2003 13:22:09 +0000 (UTC) User-Agent: slrn/0.9.7.4 (Linux)