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 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 -$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
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 -$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 ​Windows: ​archivos de texto." 
-     + cp *.txt windows/ 
-    # unix2dos ​los archivos de texto?    ​+ unix2dos windows/​*.txt ​    
 fi fi
  
update-opac.sh.txt · Last modified: 06/05/2009 00:00 (external edit)