User Tools

Site Tools


update-opac.sh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
update-opac.sh [28/10/2006 20:39]
fernando
update-opac.sh [20/07/2007 16:44]
fernando título
Line 1: Line 1:
 +====== Script update-opac.sh ======
 +
 +Este es el script utilizado para generar la actualización del OPAC. Versión: 2006.11.13.
 +
 +
 +<code bash>
 #!/bin/bash #!/bin/bash
  
Line 10: Line 16:
 #            $1 nombre de la base #            $1 nombre de la base
 #            $2 cantidad de registros a procesar (opcional, es útil para #            $2 cantidad de registros a procesar (opcional, es útil para
-#               ​procesar una cantidad pequeña de registros de una base grande)+#               ​procesar una cantidad pequeña de registros de una base 
 +#               grande ​cuando se hacen pruebas)
 # #
 # Ejemplos: # Ejemplos:
 #         ​update-opac demo #         ​update-opac demo
-#         ​update-opac ​demo 50+#         ​update-opac ​mibase 500
 # #
 # #
Line 21: Line 28:
 # ----------------------------------------------------------------------- # -----------------------------------------------------------------------
 # #
-# Requiere algunos utilitarios CISIS: mx, msrt, i2id, id2i. +# Requiere algunos utilitarios CISIS: mx, msrt, i2id, id2i; para convertir 
-Para convertir ​las bases al "​formato Windows"​ necesitacrunchmfcrunchif+# las bases al "​formato Windows"​ necesita ​además ​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 31: Line 36:
 # 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 109: Line 117:
  fi  fi
  
- echo $2 $3+ echo "$2" "$3"
  tput sgr0  tput sgr0
 } }
Line 124: Line 132:
 } }
  
 +
 +echo
 +cecho "​blue"​ "​-----------------------------------------------------"​
 +cecho "​blue"​ " ​ update-opac.sh - SCRIPT DE ACTUALIZACION DEL OPAC  "
 +cecho "​blue"​ "​-----------------------------------------------------"​
  
 # ------------------------------------------------------------------ # ------------------------------------------------------------------
Line 134: Line 147:
 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 199: Line 170:
  
 # 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 219: Line 190:
 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 230: Line 201:
 #     ​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 -$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 -$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
  echo  echo
  cecho "​blue"​ "​Importando archivo $SOURCE_DIR/​$DB_NAME.mrc..."​  cecho "​blue"​ "​Importando archivo $SOURCE_DIR/​$DB_NAME.mrc..."​
- php $OPACMARC_DIR/​mrc2isis.php $SOURCE_DIR/​$DB_NAME.mrc > tmp/​$DB_NAME.id || error "Falla al ejecutar mrc2isis.php"​+ php $OPACMARC_DIR/bin/​mrc2isis.php $SOURCE_DIR/​$DB_NAME.mrc > tmp/​$DB_NAME.id || error "Falla al ejecutar mrc2isis.php"​
  id2i tmp/​$DB_NAME.id create=tmp/​biblio || error "Hubo una falla al ejecutar id2i"  id2i tmp/​$DB_NAME.id create=tmp/​biblio || error "Hubo una falla al ejecutar id2i"
  
 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 280: Line 259:
 #     * 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 289: Line 268:
   
  # paso 0: descomprimimos la base  # paso 0: descomprimimos la base
- unzip -$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 302: Line 281:
   
  # 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 351: Line 330:
 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 364: Line 343:
  
 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 405: Line 384:
  
 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 446: Line 425:
 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 459: Line 438:
  
 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 487: Line 466:
  
 echo echo
----------------------------------------------+cecho "​blue"​ "-----------------------------------------------------"​ 
 +cecho "​blue"​ "Base bibliografica"​ 
 +cecho "​blue"​ "​-----------------------------------------------------"​ 
 cecho "​blue"​ "​Recreamos la base bibliografica."​ cecho "​blue"​ "​Recreamos la base bibliografica."​
-# --------------------------------------------- 
 id2i tmp/​biblio3.id create=biblio tell=$TELL || error "Hubo una falla al ejecutar id2i" id2i tmp/​biblio3.id create=biblio tell=$TELL || error "Hubo una falla al ejecutar id2i"
  
 echo echo
-# --------------------------------------------- 
 cecho "​blue"​ "​Ordenamos la base bibliografica."​ cecho "​blue"​ "​Ordenamos la base bibliografica."​
-# --------------------------------------------- 
 msrt biblio 100 @LOCATION_SORT.PFT tell=$TELL || error "Hubo una falla al ejecutar msrt" msrt biblio 100 @LOCATION_SORT.PFT tell=$TELL || error "Hubo una falla al ejecutar msrt"
  
Line 522: Line 501:
 echo echo
 cecho "​blue"​ " Archivo invertido - Base bibliografica..."​ cecho "​blue"​ " Archivo invertido - Base bibliografica..."​
-mx biblio gizmo=DICTGIZ fst=@BIBLIO.FST actab=AC-ANSI.TAB uctab=UC-ANSI.TAB stw=@BIBLIO.STW fullinv=biblio tell=$TELL || error "Hubo una falla al ejecutar mx"+# Antes de la FST, aplicamos un gizmo a los campos que generan puntos de acceso 
 +mx biblio gizmo=DICTGIZ,​100,​110,​111,​130,​700,​710,​711,​730,​800,​810,​811,​830 gizmo=DICTGIZ,​240,​245,​246,​440,​740,​600,​610,​611,​630,​650,​651,​653,​655,​656 ​fst=@BIBLIO.FST actab=AC-ANSI.TAB uctab=UC-ANSI.TAB stw=@BIBLIO.STW fullinv=biblio tell=$TELL || error "Hubo una falla al ejecutar mx"
  
  
Line 530: Line 510:
  
 echo echo
-cecho "​blue"​ " Detectando registros analíticos..."​+cecho "​blue"​ "​Detectando registros analíticos..."​
 # Para los registros analíticos,​ creamos un 773$9 donde guardar el MFN # Para los registros analíticos,​ creamos un 773$9 donde guardar el MFN
 # del registro asociado, y así ahorrar futuros lookups en el diccionario # del registro asociado, y así ahorrar futuros lookups en el diccionario
Line 544: Line 524:
  
  
-echo +#echo 
-cecho "​blue"​ " Títulos de seriadas..."​+#cecho "​blue"​ "​Títulos de seriadas..."​
 #mx biblio "​-BIBLEVEL=S"​ "​pft=replace(v245*2,'​^','​~'​)"​ now -all > title_serial.txt #mx biblio "​-BIBLEVEL=S"​ "​pft=replace(v245*2,'​^','​~'​)"​ now -all > title_serial.txt
  
Line 684: Line 664:
  
 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 ​Windows: ​archivos de texto." 
-     + cp *.txt windows/ 
-    # unix2dos ​los archivos de texto?    ​+ unix2dos windows/​*.txt ​    
 fi fi
  
Line 724: Line 704:
  
 # Movemos los archivos generados (previamente vaciamos $TARGET_DIR) # Movemos los archivos generados (previamente vaciamos $TARGET_DIR)
 +# TO-DO: supongamos que alguien quiere mover la versión para Windows de las bases...  ​
 if [ "​$MOVE"​ = "​1"​ ]; then if [ "​$MOVE"​ = "​1"​ ]; then
  echo  echo
Line 738: Line 719:
 echo echo
 exit 0 exit 0
 +</​code>​
update-opac.sh.txt · Last modified: 06/05/2009 00:00 (external edit)