This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | Next revision Both sides next revision | ||
update-opac.sh [28/10/2006 20:40] fernando |
update-opac.sh [31/10/2006 09:11] fernando 2006.10.30 |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | Versión: 2006.10.30 | ||
+ | |||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
Line 24: | Line 26: | ||
# Requiere algunos utilitarios CISIS: mx, msrt, i2id, id2i. | # Requiere algunos utilitarios CISIS: mx, msrt, i2id, id2i. | ||
# Para convertir las bases al "formato Windows" necesita: crunchmf, crunchif. | # Para convertir las bases al "formato Windows" necesita: crunchmf, crunchif. | ||
- | # | ||
- | # ATENCION: Lea atentamente la seccion de CONFIGURACION. | ||
# | # | ||
# La base de origen debe tener la codificación "ANSI" (aka windows-1252, | # La base de origen debe tener la codificación "ANSI" (aka windows-1252, | ||
Line 32: | Line 32: | ||
# ejemplo mediante el gizmo oem2ansi. | # ejemplo mediante el gizmo oem2ansi. | ||
# | # | ||
- | # Usamos "seq=filename.id¦" para que el poco probable | + | # Este script por ahora debe permanecer codificado como latin-1. Si usamos |
- | # carácter '¦' sea tomado por mx como delimitador de campos (y, en | + | # utf-8 tenemos un error de mx al usar el carácter '¦' como delimitador |
- | # consecuencia, no se produzca separacion en campos). ¿Quizás | + | # en los proc. |
- | # convenga emplear otro carácter? ¿Hay alguna manera de evitar que | + | # |
- | # mx asuma un separador de campos? | + | # Usamos "seq=filename.id\n" para que mx use el carácter de fin de línea como |
+ | # delimitador de campos (y, en consecuencia, no se produzca una indeseada | ||
+ | # separacion en campos). | ||
+ | # ¿Hay alguna manera de evitar que mx asuma un separador de campos? | ||
# | # | ||
# ATENCION: en caso de registros corruptos, es posible que recién | # ATENCION: en caso de registros corruptos, es posible que recién | ||
Line 110: | Line 113: | ||
fi | fi | ||
- | echo $2 $3 | + | echo "$2" "$3" |
tput sgr0 | tput sgr0 | ||
} | } | ||
Line 125: | Line 128: | ||
} | } | ||
+ | |||
+ | echo | ||
+ | cecho "blue" "-----------------------------------------------------" | ||
+ | cecho "blue" " update-opac.sh - SCRIPT DE ACTUALIZACION DEL OPAC " | ||
+ | cecho "blue" "-----------------------------------------------------" | ||
# ------------------------------------------------------------------ | # ------------------------------------------------------------------ | ||
Line 135: | Line 143: | ||
DB_NAME=$1 | DB_NAME=$1 | ||
- | |||
- | |||
- | # ------------------------------------------------------------------ | ||
- | # INICIO CONFIGURACION | ||
- | # ------------------------------------------------------------------ | ||
- | |||
- | # ubicación de mx y demás utilitarios | ||
- | export PATH=$PATH:/home/fer/bin/cisis | ||
- | |||
- | # en este directorio se encuentran los archivos necesarios para generar el OPAC | ||
- | # contiene los directorios common, opacgen, work | ||
- | OPACMARC_DIR=$HOME/opacmarc-admin | ||
- | |||
- | # en este directorio están almacenadas las imágenes de las tapas (si las hay) | ||
- | DIR_IMG=$HOME/www/html/catalis_pack_devel/opacmarc/img/$DB_NAME | ||
- | #DIR_IMG=$WORK_DIR/img | ||
- | |||
- | # a este directorio van a parar los archivos generados (opcional) | ||
- | TARGET_DIR=$HOME/www/bases/catalis_pack_devel/opacmarc/$DB_NAME | ||
- | |||
- | # MOVE=1 para mover los archivos generados al directorio destino ($TARGET_DIR) | ||
- | MOVE=1 | ||
- | |||
- | # CLEAN=1 para eliminar archivos temporales creados durante la generación del OPAC | ||
- | CLEAN=1 | ||
- | |||
- | # CONVERT_WINDOWS=1 para generar al final del proceso una version | ||
- | # para Windows del conjunto de bases | ||
- | CONVERT_WINDOWS=0 | ||
- | |||
- | # valor del parametro tell del mx | ||
- | TELL=5000 | ||
- | |||
- | # Lista de tags de los cuales vamos a extraer los encabezamientos | ||
- | export SUBJ_TAGS='v600v610v611v630v650v651v653v655v656' # subject headings | ||
- | export NAME_TAGS='v100v110v111v700v710v711' # name headings | ||
- | |||
- | # Lista de campos que se incluyen en la base TITLE. | ||
- | # ATENCION: completar/revisar. Ver title.pft. | ||
- | # Faltarian: subcampos $t de campos 505 y 7xx; campos de relación: 76x-78x | ||
- | export TITLE_TAGS=v130v240v245v246v730v740v765v773v440v830 | ||
- | |||
- | # Valores del 2do indicador que no deseamos considerar en campos 6xx | ||
- | export IGNORE_SUBJ_HEADINGS='#6' | ||
# ------------------------------------------------------------------ | # ------------------------------------------------------------------ | ||
- | # FIN CONFIGURACION | + | # LEEMOS CONFIGURACION |
# ------------------------------------------------------------------ | # ------------------------------------------------------------------ | ||
+ | CONF_FILE=`dirname $0`/../conf.sh | ||
+ | . $CONF_FILE || error "No se ha encontrado el archivo de configuración $CONF_FILE" | ||
Line 200: | Line 166: | ||
# Hay que usar el path *absoluto* para el cipar | # Hay que usar el path *absoluto* para el cipar | ||
- | export CIPAR=$OPACMARC_DIR/opacgen/opac.cip | + | export CIPAR=$OPACMARC_DIR/opac/opac.cip |
Line 220: | Line 186: | ||
if [ ! -d tmp ]; then | if [ ! -d tmp ]; then | ||
mkdir tmp || error "No se pudo crear el directorio tmp" | mkdir tmp || error "No se pudo crear el directorio tmp" | ||
- | cecho "blue" "Directorio tmp creado." | + | #cecho "blue" "Directorio tmp creado." |
fi | fi | ||
Line 231: | Line 197: | ||
# ISO: dbname.iso o biblio.iso | # ISO: dbname.iso o biblio.iso | ||
# ID: dbname.id o biblio.id | # ID: dbname.id o biblio.id | ||
+ | echo | ||
if [ -f $SOURCE_DIR/$DB_NAME.zip ]; then | if [ -f $SOURCE_DIR/$DB_NAME.zip ]; then | ||
- | unzip -o $SOURCE_DIR/$DB_NAME.zip -d tmp || error | + | unzip -oq $SOURCE_DIR/$DB_NAME.zip -d tmp || error |
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/$DB_NAME.zip" | ||
elif [ -f $SOURCE_DIR/biblio.zip ]; then | elif [ -f $SOURCE_DIR/biblio.zip ]; then | ||
- | unzip -o $SOURCE_DIR/biblio.zip -d tmp || error | + | unzip -oq $SOURCE_DIR/biblio.zip -d tmp || error |
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/biblio.zip" | ||
elif [[ -f $SOURCE_DIR/biblio.mst && -f $SOURCE_DIR/biblio.xrf ]]; then | elif [[ -f $SOURCE_DIR/biblio.mst && -f $SOURCE_DIR/biblio.xrf ]]; then | ||
cp -f $SOURCE_DIR/biblio.{mst,xrf} tmp/ || error | cp -f $SOURCE_DIR/biblio.{mst,xrf} tmp/ || error | ||
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/biblio.{mst,xrf}" | ||
elif [ -f $SOURCE_DIR/$DB_NAME.mrc ]; then | elif [ -f $SOURCE_DIR/$DB_NAME.mrc ]; then | ||
Line 248: | Line 218: | ||
elif [ -f $SOURCE_DIR/$DB_NAME.iso ]; then | elif [ -f $SOURCE_DIR/$DB_NAME.iso ]; then | ||
mx iso=$SOURCE_DIR/$DB_NAME.iso create=tmp/biblio now -all || error | mx iso=$SOURCE_DIR/$DB_NAME.iso create=tmp/biblio now -all || error | ||
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/$DB_NAME.iso" | ||
elif [ -f $SOURCE_DIR/biblio.iso ]; then | elif [ -f $SOURCE_DIR/biblio.iso ]; then | ||
mx iso=$SOURCE_DIR/biblio.iso create=tmp/biblio now -all || error | mx iso=$SOURCE_DIR/biblio.iso create=tmp/biblio now -all || error | ||
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/biblio.iso" | ||
elif [ -f $SOURCE_DIR/$DB_NAME.id ]; then | elif [ -f $SOURCE_DIR/$DB_NAME.id ]; then | ||
id2i $SOURCE_DIR/$DB_NAME.id create=tmp/biblio || error | id2i $SOURCE_DIR/$DB_NAME.id create=tmp/biblio || error | ||
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/$DB_NAME.id" | ||
elif [ -f $SOURCE_DIR/biblio.id ]; then | elif [ -f $SOURCE_DIR/biblio.id ]; then | ||
id2i $SOURCE_DIR/biblio.id create=tmp/biblio || error | id2i $SOURCE_DIR/biblio.id create=tmp/biblio || error | ||
+ | cecho "blue" "Usando como base original: $SOURCE_DIR/biblio.id" | ||
else | else | ||
Line 281: | Line 255: | ||
# * archivo EMA.001 (listado de existencias, generado desde SeCS) | # * archivo EMA.001 (listado de existencias, generado desde SeCS) | ||
# * base oem2ansi (el gizmo para cambio de codificación) | # * base oem2ansi (el gizmo para cambio de codificación) | ||
- | # * archivo secs2marc.pft (migración SeCS => MARC21) | + | # * archivo secs2marc.proc (migración SeCS => MARC21) |
# ------------------------------------------------------------------ | # ------------------------------------------------------------------ | ||
if [ -f $SOURCE_DIR/$DB_NAME-secstitle.zip ]; then # testeamos si existe la base secstitle asociada | if [ -f $SOURCE_DIR/$DB_NAME-secstitle.zip ]; then # testeamos si existe la base secstitle asociada | ||
Line 290: | Line 264: | ||
# paso 0: descomprimimos la base | # paso 0: descomprimimos la base | ||
- | unzip -o $SOURCE_DIR/$DB_NAME-secstitle.zip -d tmp || error "No se pudo descomprimir el archivo $SOURCE_DIR/$DB_NAME-secstitle.zip" | + | unzip -oq $SOURCE_DIR/$DB_NAME-secstitle.zip -d tmp || error "No se pudo descomprimir el archivo $SOURCE_DIR/$DB_NAME-secstitle.zip" |
# paso 1: recodificamos caracteres | # paso 1: recodificamos caracteres | ||
Line 303: | Line 277: | ||
# paso 4: migramos a MARC | # paso 4: migramos a MARC | ||
- | mx tmp/title "proc=@SECS2MARC.PFT" create=tmp/title_marc now -all || error "Hubo una falla al ejecutar mx" | + | mx tmp/title "proc=@SECS2MARC.PROC" create=tmp/title_marc now -all || error "Hubo una falla al ejecutar mx" |
# paso 5: añadimos los registros a la base biblio | # paso 5: añadimos los registros a la base biblio | ||
Line 352: | Line 326: | ||
cecho "blue" "tematicos, y asignamos un numero (provisorio) a cada campo" | cecho "blue" "tematicos, y asignamos un numero (provisorio) a cada campo" | ||
cecho "blue" "de encabezamientos en el subcampo ^9..." | cecho "blue" "de encabezamientos en el subcampo ^9..." | ||
- | mx "seq=tmp/biblio1.id¦" lw=3000 "pft=@HEAD.PFT" now tell=$TELL > tmp/biblio2.id || error "Hubo una falla al ejecutar mx" | + | mx "seq=tmp/biblio1.id\n" lw=3000 "pft=@HEAD.PFT" now tell=$TELL > tmp/biblio2.id || error "Hubo una falla al ejecutar mx" |
Line 365: | Line 339: | ||
cecho "blue" "Creamos el listado de encabezamientos tematicos..." | cecho "blue" "Creamos el listado de encabezamientos tematicos..." | ||
- | mx "seq=tmp/biblio2.id¦" lw=1000 "pft=if getenv('SUBJ_TAGS') : v1*1.4 then @SUBJ.PFT fi" now tell=$TELL > tmp/subj1.id || error "Hubo una falla al ejecutar mx" | + | mx "seq=tmp/biblio2.id\n" lw=1000 "pft=if getenv('SUBJ_TAGS') : v1*1.4 then @SUBJ.PFT fi" now tell=$TELL > tmp/subj1.id || error "Hubo una falla al ejecutar mx" |
echo | echo | ||
Line 406: | Line 380: | ||
cecho "blue" "Creamos el listado de encabezamientos de nombres..." | cecho "blue" "Creamos el listado de encabezamientos de nombres..." | ||
- | mx "seq=tmp/biblio2.id¦" lw=1000 "pft=if getenv('NAME_TAGS') : v1*1.4 then @NAME.PFT fi" now tell=$TELL > tmp/name1.id || error "Hubo una falla al ejecutar mx" | + | mx "seq=tmp/biblio2.id\n" lw=1000 "pft=if getenv('NAME_TAGS') : v1*1.4 then @NAME.PFT fi" now tell=$TELL > tmp/name1.id || error "Hubo una falla al ejecutar mx" |
echo | echo | ||
Line 447: | Line 421: | ||
mx tmp/namecode "fst=1 0 v1" fullinv=tmp/namecode || error "Hubo una falla al ejecutar mx" | mx tmp/namecode "fst=1 0 v1" fullinv=tmp/namecode || error "Hubo una falla al ejecutar mx" | ||
- | mx "seq=tmp/biblio2.id¦" lw=1000 "pft=@RECODE.PFT" now tell=$TELL > tmp/biblio3.id || error "Hubo una falla al ejecutar mx" | + | mx "seq=tmp/biblio2.id\n" lw=1000 "pft=@RECODE.PFT" now tell=$TELL > tmp/biblio3.id || error "Hubo una falla al ejecutar mx" |
Line 460: | Line 434: | ||
cecho "blue" "Creamos listado de titulos..." | cecho "blue" "Creamos listado de titulos..." | ||
- | mx "seq=tmp/biblio3.id¦" lw=1000 "pft=if getenv('TITLE_TAGS') : v1*1.4 then ,@TITLE.PFT, fi" now tell=$TELL > tmp/title1.id || error "Hubo una falla al ejecutar mx" | + | mx "seq=tmp/biblio3.id\n" lw=1000 "pft=if getenv('TITLE_TAGS') : v1*1.4 then ,@TITLE.PFT, fi" now tell=$TELL > tmp/title1.id || error "Hubo una falla al ejecutar mx" |
echo | echo | ||
Line 685: | Line 659: | ||
if [ "$CONVERT_WINDOWS" = "1" ]; then | if [ "$CONVERT_WINDOWS" = "1" ]; then | ||
- | echo | + | echo |
- | # ----------------------------------------------------------- | + | cecho "blue" "Conversion a Windows: bases de datos." |
- | cecho "blue" "Conversion de bases de datos a Windows." | + | if [ ! -d "windows" ]; then |
- | # ----------------------------------------------------------- | + | mkdir windows || error "No se pudo crear el directorio windows" |
- | if [ ! -d "windows" ]; then | + | fi |
- | mkdir windows || error "No se pudo crear el directorio windows" | + | #cecho "blue" "Directorio $2/windows creado." |
- | fi | + | |
- | cecho "blue" "Directorio $2/windows creado." | + | cecho "blue" " - biblio" |
- | + | crunchmf biblio windows/biblio || error "Hubo una falla al ejecutar crunchmf" | |
- | cecho "blue" " - biblio" | + | crunchif biblio windows/biblio || error "Hubo una falla al ejecutar crunchif" |
- | crunchmf biblio windows/biblio || error "Hubo una falla al ejecutar crunchmf" | + | |
- | crunchif biblio windows/biblio || error "Hubo una falla al ejecutar crunchif" | + | cecho "blue" " - name" |
- | + | crunchmf name windows/name || error "Hubo una falla al ejecutar crunchmf" | |
- | cecho "blue" " - name" | + | crunchif name windows/name || error "Hubo una falla al ejecutar crunchif" |
- | crunchmf name windows/name || error "Hubo una falla al ejecutar crunchmf" | + | |
- | crunchif name windows/name || error "Hubo una falla al ejecutar crunchif" | + | cecho "blue" " - subj" |
- | + | crunchmf subj windows/subj || error "Hubo una falla al ejecutar crunchmf" | |
- | cecho "blue" " - subj" | + | crunchif subj windows/subj || error "Hubo una falla al ejecutar crunchif" |
- | crunchmf subj windows/subj || error "Hubo una falla al ejecutar crunchmf" | + | |
- | crunchif subj windows/subj || error "Hubo una falla al ejecutar crunchif" | + | cecho "blue" " - title" |
- | + | crunchmf title windows/title || error "Hubo una falla al ejecutar crunchmf" | |
- | cecho "blue" " - title" | + | crunchif title windows/title || error "Hubo una falla al ejecutar crunchif" |
- | crunchmf title windows/title || error "Hubo una falla al ejecutar crunchmf" | + | |
- | crunchif title windows/title || error "Hubo una falla al ejecutar crunchif" | + | cecho "blue" "Conversion a Windows: archivos de texto." |
- | + | cp *.txt windows/ | |
- | # unix2dos a los archivos de texto? | + | unix2dos windows/*.txt |
fi | fi | ||