summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/scripts/bibexport/bibexport.sh
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-11-28 01:34:49 +0000
committerKarl Berry <karl@freefriends.org>2009-11-28 01:34:49 +0000
commit174ebb955a1d029b8cf859d31a933fbf09b89463 (patch)
tree9dc999a2dc034f6d403bd834705ad2be8f3f708b /Master/texmf-dist/scripts/bibexport/bibexport.sh
parent943aad72bf75cc0f512715ca64181c089a32ec11 (diff)
new script bibexport 2.20 (11oct09)
git-svn-id: svn://tug.org/texlive/trunk@16219 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/scripts/bibexport/bibexport.sh')
-rwxr-xr-xMaster/texmf-dist/scripts/bibexport/bibexport.sh178
1 files changed, 178 insertions, 0 deletions
diff --git a/Master/texmf-dist/scripts/bibexport/bibexport.sh b/Master/texmf-dist/scripts/bibexport/bibexport.sh
new file mode 100755
index 00000000000..07ae9bc2d8e
--- /dev/null
+++ b/Master/texmf-dist/scripts/bibexport/bibexport.sh
@@ -0,0 +1,178 @@
+#!/bin/sh
+##
+## This is file `bibexport.sh',
+## generated with the docstrip utility.
+##
+## The original source files were:
+##
+## bibexport.dtx (with options: `script')
+##
+## (c) 2005/02/27 Nicolas Markey <markey at lsv dot ens-cachan dot fr>
+## All rights reserved.
+##
+## This work may be distributed and/or modified under the conditions of
+## the LaTeX Project Public License, either version 1.3 of this license
+## or (at your option) any later version. The latest version of the
+## license is in
+##
+## http://www.latex-project.org/lppl.txt
+##
+## and version 1.3 or later is part of all distributions of LaTeX
+## version 2003/12/01 or later.
+##
+## \CharacterTable
+## {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+## Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+## Digits \0\1\2\3\4\5\6\7\8\9
+## Exclamation \! Double quote \" Hash (number) \#
+## Dollar \$ Percent \% Ampersand \&
+## Acute accent \' Left paren \( Right paren \)
+## Asterisk \* Plus \+ Comma \,
+## Minus \- Point \. Solidus \/
+## Colon \: Semicolon \; Less than \<
+## Equals \= Greater than \> Question mark \?
+## Commercial at \@ Left bracket \[ Backslash \\
+## Right bracket \] Circumflex \^ Underscore \_
+## Grave accent \` Left brace \{ Vertical bar \|
+## Right brace \} Tilde \~}
+##
+function usage()
+{
+echo "bibexport: a tool to extract BibTeX entries out of .bib files.
+usage: $0 [-h|v] [-n] [-b bst] [-a [-e file]...] [-o file] file...
+ -a, --all export the entire .bib files
+ -b, --bst specifies the .bst style file [default: export.bst]
+ -c, --crossref include entries that are crossref'd [default: yes]
+ -e file, --extra file extra .bib files to be used (for crossrefs)
+ -n, --no-crossref don't include crossref'd entries [default: no]
+ -o file write output to file [default: bibexport.bib]
+ -p, --preamble write a preamble at beginning of output
+ -t, --terse operate silently
+ -h, --help print this message and exit
+ -v, --version print version number and exit";
+exit 0;
+}
+VERSION="2.20";
+VDATE="2009/10/11";
+CROSSREF="1";
+FILE="";
+EXT=".aux";
+EXTRA="";
+EXTRABIB="";
+SPACE=" ";
+BST="export";
+TERSE="";
+NOBANNER="true";
+ARGS=$@;
+if [ $# -eq 0 ]; then
+ usage;
+fi
+while [ $# != 0 ]; do
+ case $1 in
+ -a|--all)
+ EXT=""; SPACE="";
+ shift ;;
+ -b|--bst)
+ if [ "`dirname $2`" = "." ]; then
+ DOLLARTWO="`basename $2 .bst`";
+ else
+ DOLLARTWO="`dirname $2`/`basename $2 .bst`";
+ fi
+ BST="${DOLLARTWO}";
+ shift 2;;
+ -e|--extra)
+ if [ "`dirname $2`" = "." ]; then
+ DOLLARTWO="`basename $2 .bib`";
+ else
+ DOLLARTWO="`dirname $2`/`basename $2 .bib`";
+ fi
+ EXTRA="${EXTRA}${DOLLARTWO},";
+ EXTRABIB="${EXTRABIB},${DOLLARTWO}.bib";
+ shift 2;;
+ -o|--output-file)
+ if [ "`dirname $2`" = "." ]; then
+ DOLLARTWO="`basename $2 .bib`";
+ else
+ DOLLARTWO="`dirname $2`/`basename $2 .bib`";
+ fi
+ OUTPUT="${DOLLARTWO}.bib";
+ shift 2 ;;
+ -c|--crossref|--crossrefs|--with-crossref|--with-crossrefs)
+ CREF="1" ;
+ shift ;;
+ -n|--no-crossref|--without-crossref)
+ CREF="20000" ;
+ shift ;;
+ -v|--version)
+ echo "This is bibexport v${VERSION} (released ${VDATE})"; exit 0;;
+ -p|--preamble)
+ NOBANNER="false";
+ shift ;;
+ -t|--terse)
+ TERSE=" -terse ";
+ shift ;;
+ -*)
+ usage;;
+ *)
+ if [ "`dirname $1`" = "." ]; then
+ DOLLARONE="`basename $1 ${EXT}`";
+ else
+ DOLLARONE="`dirname $1`/`basename $1 ${EXT}`";
+ fi
+ FILE="${FILE}${SPACE}${DOLLARONE}${EXT}";
+ if [ -z "${SPACE}" ]; then
+ SPACE=",";
+ fi;
+ shift;;
+ esac
+done
+FINALFILE=${OUTPUT};
+if [ ! "${FINALFILE}" ]; then
+ FINALFILE="bibexport.bib";
+fi
+TMPFILE="bibexp.`date +%s`";
+if [ -z "${EXT}" ]; then
+ if [ -z "${EXTRA}" ]; then
+ cat > ${TMPFILE}.aux <<EOF
+\citation{*}
+\bibdata{${FILE}}
+\bibstyle{${BST}}
+EOF
+ else
+ cat > ${TMPFILE}.aux <<EOF
+\citation{*}
+\bibdata{${FILE}}
+\bibstyle{expkeys}
+EOF
+ bibtex -min-crossrefs=${CREF} -terse ${TMPFILE};
+ mv -f ${TMPFILE}.bbl ${TMPFILE}.aux;
+ cat >> ${TMPFILE}.aux <<EOF
+\bibdata{${EXTRA}${FILE}${EXTRABIB}}
+\bibstyle{${BST}}
+EOF
+ fi
+else
+ cat ${FILE} | sed -e "s/bibstyle{.*}/bibstyle{${BST}}/" > ${TMPFILE}.aux;
+fi
+bibtex -min-crossrefs=${CREF} ${TERSE} ${TMPFILE}
+echo "" > ${FINALFILE}
+if [ ! "${NOBANNER}" = "true" ]; then
+ echo -ne "@comment{generated using bibexport:\n" >> ${FINALFILE};
+ echo -ne " creation date:\t`date +\"%c\"`\n" >> ${FINALFILE};
+ echo -ne " command:\t\t$0 ${ARGS}\n" >> ${FINALFILE};
+ echo -ne " bibexport-version:\tv${VERSION} (${VDATE})\n" >> ${FINALFILE};
+ echo -ne " bibexport-maintainer:\tmarkey(at)lsv.ens-cachan.fr\n" >> ${FINALFILE};
+ sed -ie "s/}/)/g" ${FINALFILE};
+ echo -ne "}\n\n\n" >> ${FINALFILE};
+fi
+if [ ! "x${CREF}" = "x1" ]; then
+ sed -r -e \
+ "/^ *[cC][rR][oO][sS][sS][rR][eE][fF] *= *[^,]+,?$/d" \
+ ${TMPFILE}.bbl >> ${FINALFILE};
+else
+ cat ${TMPFILE}.bbl >> ${FINALFILE};
+fi
+rm -f ${TMPFILE}.bbl ${TMPFILE}.aux ${TMPFILE}.blg
+##
+##
+## End of file `bibexport.sh'.