summaryrefslogtreecommitdiffstats
path: root/printerd
blob: 05a1052bc6785fd9e48d6aa6a2345498914040e6 (plain) (blame)
1
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
#! /bin/bash

# This script runs a daemon that listens on a port for printjobs and pipes
# incoming data into UNIX lpd, which starts a helper program when a print-
# job is incoming.

USER="manuel"
BUSYBOX="busybox"
IP="0.0.0.0"
PORT="515"
SPOOLDIR="/var/spool"
SPOOLQUEUE="STANDARD"


# SHALL BE UNNECESSARY HENCE printerd RUNS IN USERCONTEXT
## If there are more than 1 seats open, quit
#if [ $(loginctl list-seats) != "seat0" ]; then
#  exit
#fi
#
## Get the name(s) of the users physically using the machine
#NAME=$( loginctl | awk  '$3 !~ /root/, $4 ~ /seat0/ { print $3 }' | sort -u )
#
## Print error in case of multiple users
#if (( $(echo $NAME | wc -w ) > 1 )) ; then
#  echo "[$0] To many users on this seat. Usernames: $NAME" > /tmp/debug-report/printer
#  exit
#fi

# Create the directory for the queue
mkdir -p "$SPOOLDIR/$SPOOLQUEUE"

# Change the owner of the directory such that lpd 
# is able to write to it
chown $USER:$USER "$SPOOLDIR/$SPOOLQUEUE"

# Start the lpdaemon listening on the given port
"$BUSYBOX" tcpsvd -Eu "$USER:$USER" "$IP" "$PORT" \
  "$BUSYBOX" lpd "$SPOOLDIR" sh -c 'printerGUI ms1144 $DATAFILE' &