Skip to content

Instantly share code, notes, and snippets.

containers:
printer:
setup:
- !Ubuntu trusty
- !Sh "dpkg --add-architecture i386"
- !Install ["libc6:i386", "cups-client"]
- !EnsureDir "/usr/share/cups/model"
- !Sh "dpkg -i brdcp7030lpr-2.0.2-1.i386.deb"
- !Sh "dpkg -i cupswrapperDCP7030-2.0.2-1.i386.deb"
commands:
wrapper: !Command
container: printer
run: ["/usr/lib/cups/filter/brlpdwrapperDCP7030"]
sudo mkdir /var/lib/printer
sudo cp vagga.yaml .vagga /var/lib/printer
cd ~/dev/vagga
sudo PREFIX=/var/lib/printer ./install.sh
cd /var/lib/printer
sudo chown -R cups:lp .
sudo mkdir /var/lib/printer
sudo cp vagga.yaml .vagga /var/lib/printer
cd ~/dev/vagga
sudo PREFIX=/var/lib/printer ./install.sh
cd /var/lib/printer
sudo chown -R cups:lp .
printer:
uids: [0]
gids: [0]
setup:
...
{pkgs, stdenv}:
pkgs.writeTextFile {
name = "brlpdwrapperDCP7030";
destination = "/lib/cups/filter/brlpdwrapperDCP7030";
executable = true;
text = ''
#!/bin/sh
cd /var/lib/printer
export PATH=$PATH:/var/setuid-wrappers
{pkgs, stdenv}:
pkgs.writeTextFile {
name = "brlpdwrapperDCP7030";
destination = "/lib/cups/filter/brlpdwrapperDCP7030";
executable = true;
text = ''
#!/bin/sh
cd /var/lib/printer
export PATH=$PATH:/var/setuid-wrappers
setup:
- !Ubuntu trusty
- !UbuntuUniverse # needed for a2ps
- !Sh "dpkg --add-architecture i386"
- !Install ["libc6:i386", "cups-client"]
- !Install ["ghostscript", "a2ps"]
- !EnsureDir "/usr/share/cups/model"
- !Sh "dpkg -i brdcp7030lpr-2.0.2-1.i386.deb"
- !Sh "dpkg -i cupswrapperDCP7030-2.0.2-1.i386.deb"
loop {
let mut buf = new_buffer();
try!(read_request(&mut buf));
let parsed = try!(parse_request(&buf));
let value = try!(process_request(&parsed));
try!(send_response(&value));
}
enum FSM {
Reading(Buf),
Processing(Parsed),
Sending(OutBuf),
Idle,
}