Skip to content

Instantly share code, notes, and snippets.

@tailhook
tailhook / context.rs
Created September 21, 2015 15:57
quick-error-with-context
#[macro_use] extern crate quick_error;
quick_error! {
#[derive(Debug)]
pub enum SomeError {
Io(err: io::Error, path: PathBuf) {
display("I/O error at {path}: {err}", err=err, path=path)
description(err.description())
}
ApplicationError
}
@tailhook
tailhook / context-usage.rs
Created September 21, 2015 16:07
usage-of-context
try!(File::open(&path)
.map_err(|e| SomeError::Io(e, path.to_path_buf())))
containers:
printer:
setup:
- !Ubuntu trusty
- !Sh "dpkg -i brdcp7030lpr-2.0.2-1.i386.deb"
- !Sh "dpkg -i cupswrapperDCP7030-2.0.2-1.i386.deb"
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