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 [31/10/2006 09:11]
fernando 2006.10.30
Line 1: Line 1:
 +Versión: 2006.10.30
 +
 +<code bash>
 #!/bin/bash #!/bin/bash
  
Line 23: 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 31: 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 109: Line 113:
  fi  fi
  
- echo $2 $3+ echo "$2" "$3"
  tput sgr0  tput sgr0
 } }
Line 124: Line 128:
 } }
  
 +
 +echo
 +cecho "​blue"​ "​-----------------------------------------------------"​
 +cecho "​blue"​ " ​ update-opac.sh - SCRIPT DE ACTUALIZACION DEL OPAC  "
 +cecho "​blue"​ "​-----------------------------------------------------"​
  
 # ------------------------------------------------------------------ # ------------------------------------------------------------------
Line 134: 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 199: 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 219: 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 230: 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 247: 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 280: 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 289: 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 302: 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 351: 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 364: 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 405: 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 446: 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 459: 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 684: 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
  
Line 738: Line 713:
 echo echo
 exit 0 exit 0
 +</​code>​
update-opac.sh.txt · Last modified: 06/05/2009 00:00 (external edit)