Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env perl
- use warnings;
- use strict;
- if (@ARGV) {
- # set alarm HH:MM
- use POSIX qw/strftime/;
- # current time
- my ($ch,$cm,$cs) = split /:/, strftime "%H:%M:%S", localtime;
- $_ ||= 0 for $ch,$cm,$cs;
- my $ct = ($ch * 60 * 60) + ($cm * 60) + $cs;
- # at time
- my $plus = $ARGV[0] =~ m/^\+/;
- $ARGV[0] =~ s/^\+//;
- my ($ah,$am,$as) = split /:/, $ARGV[0];
- $_ ||= 0 for $ah,$am,$as;
- my $at = ($plus ? $ct : 0) + ($ah * 60 * 60) + ($am * 60) + $as;
- # seconds to sleep
- my $seconds = ($at - $ct) % (24 * 60 * 60);
- # delta time for print statement
- my $dh = int $seconds / 60 / 60;
- my $dm = int +($seconds - $dh*60*60) / 60;
- my $ds = int $seconds - $dh*60*60 - $dm*60;
- printf "Waking up in %d hours %d minutes %d seconds\n",
- $dh, $dm, $ds;
- sleep $seconds;
- my %levels = (
- Master => 90,
- PCM => 100,
- );
- for my $ch (keys %levels) {
- system qw/amixer set/, $ch, "$levels{$ch}%";
- system qw/amixer set/, $ch, "unmute";
- }
- system "reflash";
- system "mplayer", glob
- "\Q/home/substack/media/music/Modest Mouse/2001 - sad sappy sucker/\E*";
- }
- else {
- system qw/killall mplayer/;
- }
Add Comment
Please, Sign In to add comment