Fix syntax.
[sitka/sitka-tools.git] / marc_export_custom / mucn-full-export-parallel-ebsco-wrapper.sh
1 #!/bin/bash
2 # This is meant to be fire-and-forget
3 # Only use it if you trust the output!
4 export DIR=$(readlink -f $(dirname $0))
5 if [ -z "${MAKEOPTS}" ]; then
6         echo "MAKEOPTS env variable is not set"
7         echo "If you really want this to be serialized, export MAKEOPTS=-j1"
8         echo "Otherwise set it about 1.5x your number of CPUs!"
9         exit 1
10 fi
11 [ -z "${T}" ] && export T=$(date -u +%Y%m%dT%H%M%SZ)
12 [ -z "${OUTDIR}" ] && export OUTDIR=$(mktemp --tmpdir -d ebsco_export.$T.XXXXXXX)
13 cd $OUTDIR
14 echo Prep $(date -uR)/@$(date +%s)
15 $DIR/fetch-shortcodes.sh
16 cd $DIR
17 echo Exporting $(date -uR)/@$(date +%s)
18 export PERLOPT=-X
19 time ./mucn-ebsco-full-export-parallel.sh
20 cd $OUTDIR
21 mkdir split
22 mv *split* split/
23 echo Compressing $(date -uR)/@$(date +%s)
24 pbzip2 -9nk -p4 *{marc,log}
25 pbzip2 -9n -p4 split/*{marc,log}
26 echo Stats $(date -uR)/@$(date +%s)
27 $DIR/stats.sh
28 # Look for zeros in the output marc
29 echo Sanity $(date -uR)/@$(date +%s)
30 egrep -vsq '^([[:space:]]*0){2}.*marc$' *stats
31 grep_result=$?
32 # halt if found
33 if [ $rc -ne 0 -o $grep_result -ne 0 ]; then
34         echo "Failed to run export! Human needed! export=$rc grep_sanity=$grep_result" 1>&2
35         cat *stats 1>&2
36         exit 1
37 fi
38 echo FTP $(date -uR)/@$(date +%s)
39 # Two passes with mget, so the stats and csv are always there first
40 # they are small and serve to show we might be uploading more, and they have
41 # checksums so AutoGraphics can check the upload
42 cat >lftp.cmd <<EOF
43 open ftp://cat00975a:neJUJ4ez@ftp.epnet.com/
44 mkdir -p mucn/$T
45 cd mucn/$T
46 mput *csv *stats
47 mput *bz2
48 rels -l
49 EOF
50 lftp -f lftp.cmd
51 echo Email $(date -uR)/@$(date +%s)
52 cp $DIR/email-template-ebsco.sh $OUTDIR/
53 chmod +x email-template-ebsco.sh
54 ./email-template-ebsco.sh "$T" "@$(date +%s)" >email.txt
55 /usr/lib/sendmail -f rjohnson@sitka.bclibraries.ca <email.txt