#!/usr/bin/perl
# Copyright (C) 2007 Eric L. Wilhelm
use warnings;
use strict;
=head1 NAME
readline_usb - read lines from a usb "keyboard"
=cut
package bin::readline_usb;
use Linux::USBKeyboard;
use YAML;
sub main {
my (@args) = @_;
@args or die "usage $0 <profile>\n";
my %conf = load_config(@args);
my $kb = Linux::USBKeyboard->open(%conf);
$| = 1;
while(my $line = <$kb>) {
print $line;
}
}
sub load_config {
my ($conf_name) = @_;
my $conf_dir = $ENV{HOME} . '/.usbkeyboard/';
unless(-d $conf_dir) {
(-e $conf_dir) or die "no '$conf_dir' directory";
die "'$conf_dir' is not a directory";
}
my $file = $conf_dir . $conf_name . '.yml';
(-e $file) or die "'$file' -- no such file";
my $conf = YAML::LoadFile($file);
return(%$conf);
}
package main;
if($0 eq __FILE__) {
bin::readline_usb::main(@ARGV);
}
# vi:ts=2:sw=2:et:sta
my $package = 'bin::readline_usb';