| 1 | #!/bin/sh -f |
|---|
| 2 | |
|---|
| 3 | |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | |
|---|
| 8 | |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | |
|---|
| 13 | |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | |
|---|
| 18 | |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | |
|---|
| 36 | |
|---|
| 37 | |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | usage () { |
|---|
| 42 | cat << USAGE |
|---|
| 43 | |
|---|
| 44 | $0 file |
|---|
| 45 | |
|---|
| 46 | Writes a minimal BibTeX entry for given file. |
|---|
| 47 | |
|---|
| 48 | Parameters: |
|---|
| 49 | file the file to process. |
|---|
| 50 | USAGE |
|---|
| 51 | exit 1; |
|---|
| 52 | } |
|---|
| 53 | |
|---|
| 54 | checkInput() { |
|---|
| 55 | |
|---|
| 56 | if [ "x${file}" == "x" ]; then |
|---|
| 57 | file=$@; |
|---|
| 58 | fi; |
|---|
| 59 | if [ "x${file}" == "x" ]; then |
|---|
| 60 | from_stdin=true; |
|---|
| 61 | fi; |
|---|
| 62 | [ "x${from_stdin}" == "xfalse" ] && [ "x${file}" == "x" ] && usage |
|---|
| 63 | } |
|---|
| 64 | |
|---|
| 65 | generate_bibtex() { |
|---|
| 66 | _dir=`echo "$1" | awk -F"/" 'BEGIN{any=0;}{for(i=2;i<=NF;i++){any=1;printf("%s", $i);}}END{if(any==1)print "";}'` |
|---|
| 67 | shift |
|---|
| 68 | echo "$@" | \ |
|---|
| 69 | awk -F"-" -v quote="'" -v dollar="$" -v dir="${_dir}" 'BEGIN{printf("echo -n \"@book{\"\n");}{printf("echo \"%s\" | awk -F\".\" %s{if(NF==1){printf(\"%%s\", %si);}else{for (i=1;i<NF;i++){printf(\"%%s\", %si);}}}END{print \",\";}%s | tr \" \" \"_\"\necho -n \" title=\\\"\"\necho \"%s\" | awk -F\".\" %s{if(NF==1){printf(\"%%s\", %si)}else{for (i=1;i<NF;i++){printf(\"%%s\", %si);}}}%s\necho \"\\\",\"\necho \" publisher=\\\"%s\\\"\",\necho \" note=\\\"%s/%s\\\"\"\necho }\n", $2, quote, dollar, dollar, quote, $2, quote, dollar, dollar, quote, $1, dir, $0);}' | sh |
|---|
| 70 | } |
|---|
| 71 | |
|---|
| 72 | from_stdin=false; |
|---|
| 73 | |
|---|
| 74 | checkInput $@ |
|---|
| 75 | |
|---|
| 76 | read line |
|---|
| 77 | while [ "x${line}" != "x" ]; |
|---|
| 78 | do |
|---|
| 79 | generate_bibtex "`dirname "$line"`" "`basename "$line"`" |
|---|
| 80 | read line |
|---|
| 81 | done |
|---|
| 82 | |
|---|
| 83 | if [ "x${from_stdin}" == "xfalse" ] && [ "x${file} != "x" ]; then |
|---|
| 84 | generate_bibtex "`dirname "$file"`" "`basename "$file"`" |
|---|
| 85 | fi |
|---|
| 86 | |
|---|
| 87 | # | awk -F"-" -v quote="'" -v dollar="$" 'BEGIN{printf("echo -n \"@book{\"\n");}{printf("echo %s | awk -F\".\" %s{print %s1;}%s | tr \" \" \"_\"\necho -n \" title=\\\"\"\necho %s | awk -F\".\" %s{printf(\"%%s\", %s1);}%s\necho \"\\\"\"\necho \" publisher=\\\"%s\\\"\"\necho }\n", $2, quote, dollar, quote, $2, quote, dollar, quote, $1);}' |
|---|