#!/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 \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';