diff options
Diffstat (limited to 'office/convertlit/lit2epub')
-rw-r--r-- | office/convertlit/lit2epub | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/office/convertlit/lit2epub b/office/convertlit/lit2epub new file mode 100644 index 0000000000..3dca90e68b --- /dev/null +++ b/office/convertlit/lit2epub @@ -0,0 +1,71 @@ +#!/bin/bash + +# 20130220: lit2epub by B. Watson (part of convertlit slackbuilds.org build) +# Licensed under the WTFPL. + +# Wrapper script for convertlit, zips up convertlit's output dir +# and cleans it up afterward. Leave the shebang line alone, this +# uses at least one bash-specific feature. + +NAME=$( basename $0 ) +TMP=${TMP:-/tmp} +OUTDIR=$TMP/$NAME.$$.$RANDOM + +set -e + +if [ "$1" = "" -o "$1" = "--help" -o "$1" = "-h" ]; then + cat <<EOF +$NAME - convert a DRM1 .lit file to .epub + +Usage: $NAME input.lit [ output.epub ] + +Default output file is written to the current directory, named after the +input filename with the .lit or .LIT extension changed to .epub, or the +input filename with .epub appended, if there is no .lit extension. + +Use - for the output file, to output to stdout. + +Exit status is 0 on success, non-zero on failure. + +If you need to convert a non-DRM1 .lit file, use convertlit to downconvert +to DRM1 first. +EOF + exit 0 +fi + +INFILE="$1" +case "$INFILE" in + *.lit) EXT=.lit ;; + *.LIT) EXT=.LIT ;; + *) EXT="" ;; +esac + +trap "rm -rf \"$OUTDIR\"" EXIT ERR + +# All this rigamarole with dirname/basename/readlink needed because we run +# zip from within our temp directory. +if [ "$2" = "" ]; then + OUTFILE="$( pwd )/$( basename "$INFILE" $EXT ).epub" + if [ -e "$OUTFILE" ]; then + echo "$NAME: $OUTFILE already exists, aborting" 1>&2 + exit 1 + fi +elif [ "$2" = "-" ]; then + OUTFILE="$OUTDIR/output.epub" +else + OUTFILE="$( readlink -f "$OUTFILE" )" +fi + +# convertlit and zip both want to spew status messages to stdout, +# redirect to stderr so we can output just the .epub to stdout. +convertlit -d "$INFILE" "$OUTDIR"/ 1>&2 +( cd "$OUTDIR" ; zip -r "$OUTFILE" * 1>&2 ) + +if [ "$2" = "-" ]; then + cat "$OUTFILE" + OUTFILE="(standard output)" +fi + +echo 1>&2 +echo "$INFILE => $OUTFILE" 1>&2 +exit 0 |