Skip to content

Instantly share code, notes, and snippets.

@Shinpeim
Last active December 14, 2015 03:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Shinpeim/5019615 to your computer and use it in GitHub Desktop.
Save Shinpeim/5019615 to your computer and use it in GitHub Desktop.
https://github.com/moznion/App--Prove--WithSound/blob/master/prove-with-sound これ、どんなコマンドでもいいようにしてみた
#!/usr/bin/env perl
use strict;
use warnings;
use Audio::Play::MPG123;
use Config::Simple;
use File::Spec::Functions qw/catfile/;
sub load_config {
my $config = Config::Simple->new( catfile( $ENV{HOME}, '.with-soundrc' ) );
return $config->param('SUCCESS'), $config->param('FAILURE');
}
sub play_mp3 {
my ($mp3_file) = @_;
my $pid = fork;
die "fork failed." unless defined $pid;
if ( $pid == 0 ) {
my $player = Audio::Play::MPG123->new;
$player->load( glob $mp3_file );
$player->poll(1) until $player->state == 0;
}
}
my ( $success_sound, $failure_sound ) = load_config;
my $retval = system(@ARGV);
if ($retval == 0) {
# success
play_mp3( glob $success_sound );
}
else {
# error
play_mp3( glob $failure_sound );
}
exit($retval);
__END__
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment