diff options
Diffstat (limited to 'examples/printing/smbprint')
-rwxr-xr-x | examples/printing/smbprint | 104 |
1 files changed, 27 insertions, 77 deletions
diff --git a/examples/printing/smbprint b/examples/printing/smbprint index 68bd66a13f..5a00a2a8aa 100755 --- a/examples/printing/smbprint +++ b/examples/printing/smbprint @@ -25,11 +25,6 @@ # # -t now causes translate to be used when sending files # -# Further modifications by Alfred Perlstein to fix some problems and -# improve the quality of the code (3-Dec-2001). -# -# More hacking by Richard Sharpe to improve portability. 9-Dec-2001. -# # In order for this to work the /etc/printcap entry must include an # accounting file (af=...): # @@ -51,10 +46,12 @@ # service=CJET_371 # password="" -#smbclient=/usr/pkg/bin/smbclient -# Assume that smbclient will be in the same place as smbprint +# +# Debugging log file, change to /dev/null if you like. +# +logfile=/tmp/smb-print.log +# logfile=/dev/null -smbclient="`dirname $0`/smbclient" # # The last parameter to the filter is the accounting file name. @@ -70,76 +67,29 @@ config_file=$spool_dir/.config # server # service # password -# username (optional) -# IP (optional) -# debug (optional) -# debugsmb (optional) -# debugfile (optional) -. $config_file - -if [ "x$password" = "x" ] ; then - password="-N" -fi +eval `cat $config_file` -if [ "x$username" == "x" ] ; then - username="$server"; -fi +while getopts t c; do + case $c in + t) + TRANS=1 + ;; -while test $# -gt 0; do - case "$1" in - -t) - TRANS=1 - ;; - - *) # Bad Parameters, ignore them ... - ;; - esac - shift + '?') # Bad parameters, ignore it ... + ;; + esac done - -command="print - ;" -if [ $TRANS -eq 1 ]; then - command="translate;$command"; -fi - -debugfile="/tmp/smb-print.log" -if [ "x$debug" = "x" ] ; then - debugfile=/dev/null debugargs= -else - if [ $debug -eq 0 ] ; then - debugfile=/dev/null debugargs= - else - set -x; exec >>$debugfile 2>&1 - debugargs="$debugfile." - #[ "x$debugsmb" == "x" ] || debugargs="$debugargs -d $debugsmb" - fi -fi - -if [ "x$smbconf" != "x" ]; then - - smbconf="-s $smbconf" - -fi - -if [ "x$IP" != "x" ]; then - - IP="-I $IP" - -fi - -if [ "x$debugargs" != "x" ]; then - - debugargs="-l $debugargs" - -fi - -$smbclient \ - "\\\\$server\\$service" \ - $password \ - $smbconf \ - $IP \ - $debugargs \ - -U $username \ - -P \ - -c "$command" # +# Some debugging help, change the >> to > if you want to same space. +# +echo "server $server, service $service" >> $logfile + +( +# NOTE You may wish to add the line `echo translate' if you want automatic +# CR/LF translation when printing. + if [ $TRANS -eq 1 ]; then + echo translate + fi + echo "print -" + cat +) | /usr/local/samba/bin/smbclient "\\\\$server\\$service" $password -U $server -N -P >> $logfile |