#!/opt/perl/bin/perl -w # # Simple MAME launcher script # use strict; $| = 1; $SIG{'PIPE'} = "IGNORE"; do "$ENV{'HOME'}/.mlrc" or die "$@\n"; our (@DATA, $AFTER); my $PAGER = ($ENV{'PAGER'} || "more"); my @ndx; my ($i, $j) = (0, 0); foreach my $r (@DATA) { $r->[0] and $ndx[$i++] = $j; $j++; } my $nrec = $i; while (1) { print "\033[H\033[2J"; open(PIPE, "| $PAGER") or die "Can't execute \`$PAGER': $!\n"; print PIPE <<'EOF'; ___ ___ ___ ___ ___ _____ | \/ | / _ \ | \/ || ___| | . . |/ /_\ \| . . || |__ | |\/| || _ || |\/| || __| | | | || | | || | | || |___ \_| |_/\_| |_/\_| |_/\____/ _ ___ _ _ _ _ _____ _ _ ___________ | | / _ \| | | | \ | / __ \| | | || ___| ___ \ | | / /_\ \ | | | \| | / \/| |_| || |__ | |_/ / | | | _ | | | | . ` | | | _ || __|| / | |____| | | | |_| | |\ | \__/\| | | || |___| |\ \ \_____/\_| |_/\___/\_| \_/\____/\_| |_/\____/\_| \_| EOF my $i = 1; foreach my $r (@DATA) { $r->[0] or do {print PIPE "\n"; next}; printf PIPE "%3d: %s\n", $i++, $r->[0]; } close(PIPE); print "\n Select: "; defined(my $tmp = ) or exit; chomp $tmp; ($tmp !~ /^[\d]+$/ or ($tmp < 1 || $tmp > $nrec)) and do {print " Invalid response"; sleep 1; next}; # print " Extra options: "; # defined(my $opt = ) or exit; chomp $opt; my $r = $DATA[$ndx[$tmp - 1]]; # system("$r->[1] $opt"); system("$r->[1]"); $AFTER and system($AFTER); } .