1
0
gentoo-ecodms/net-print/ecodmsprinter/files/ecodms

76 lines
2.4 KiB
Plaintext
Raw Permalink Normal View History

#!/bin/sh
# -------------------------------------------------------------------
# "/usr/libexec/cups/backend/ecodms"
# based on original file from applord GmbH for ecoDMS
# changed by Anna Christina Naß <acn@annachristina.eu> for Gentoo Linux
# -------------------------------------------------------------------
#
FILENAME=
# filename of the PDF File
PRINTTIME=`date +%Y-%m-%d_%H.%M.%S`
# case of wrong number of arguments
if [ $# -ne 5 -a $# -ne 6 ]; then
echo "Usage: $0 job-id user title copies options [file]"
exit 1
fi
# check for username and title to be present
if [ "$2" = "" -o "$3" = "" ]; then
echo "ERROR: username and title must be set - maybe you are trying to print not from the X session" 1>&2
exit 1
fi
# check if there is a ecodmssinglesignon process for the current user
MYUID=`id -u $2`
DBUSPROC=`ps -eo euid,ruid,pid,comm,args | grep ecodmssinglesignon | grep -v grep | grep $MYUID | awk '{print \$1}'`
if [ "$MYUID" != "$DBUSPROC" ]; then
echo "ERROR: There is no or more then one ecodmssinglesignon process running on the machine for user $2" 1>&2
exit 1
fi
# get PDF directory from device URI, and check write status
PDFDIR=${DEVICE_URI#ecodms:}
if [ ! -d "$PDFDIR" -o ! -w "$PDFDIR" ]; then
echo "ERROR: directory $PDFDIR not writable"
exit 1
fi
# generate output filename
OUTPUTFILENAME="$PDFDIR/$2-$1-$PRINTTIME.ps"
# set input filename if any
INPUTFILENAMEOPTION=-
if [ $# -eq 6 ]; then
INPUTFILENAMEOPTION=-f $6
fi
# ghostscript disabled for now, replaced by "cat"
#/usr/bin/gs -q -dCompatibilityLevel=1.4 -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -sOutputFile="$OUTPUTFILENAME" -dAutoRotatePages=/PageByPage -dAutoFilterColorImages=false -dColorImageFilter=/FlateEncode -dPDFSETTINGS=/prepress -c .setpdfwrite $INPUTFILENAMEOPTION
cat $INPUTFILENAMEOPTION > $OUTPUTFILENAME
#RC=$?
#if [ $RC -ne 0 ]; then
# echo "ERROR: unable to convert the file to pdf format" 1>&2
# exit $RC
#fi
# Make the file visible and writable because it should be deleted by the ecodms process;
chmod 666 $OUTPUTFILENAME
echo "ERROR: $OUTPUTFILENAME" 1>&2
## call program here and perform some cleanup
LD_LIBRARY_PATH=/usr/libexec/cups/ecodms/ /usr/libexec/cups/ecodms/ecodmsprinter $2 $OUTPUTFILENAME
RC=$?
if [ $RC -ne 0 ]; then
exit $RC
fi
# perform cleanup
rm $OUTPUTFILENAME
exit 0
# EOF
# -------------------------------------------------------------------