Guest User

Untitled

a guest
Jul 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. use warnings;
  3. use strict;
  4.  
  5. if (@ARGV) {
  6. # set alarm HH:MM
  7. use POSIX qw/strftime/;
  8.  
  9. # current time
  10. my ($ch,$cm,$cs) = split /:/, strftime "%H:%M:%S", localtime;
  11. $_ ||= 0 for $ch,$cm,$cs;
  12. my $ct = ($ch * 60 * 60) + ($cm * 60) + $cs;
  13.  
  14. # at time
  15. my $plus = $ARGV[0] =~ m/^\+/;
  16. $ARGV[0] =~ s/^\+//;
  17. my ($ah,$am,$as) = split /:/, $ARGV[0];
  18. $_ ||= 0 for $ah,$am,$as;
  19. my $at = ($plus ? $ct : 0) + ($ah * 60 * 60) + ($am * 60) + $as;
  20.  
  21. # seconds to sleep
  22. my $seconds = ($at - $ct) % (24 * 60 * 60);
  23.  
  24. # delta time for print statement
  25. my $dh = int $seconds / 60 / 60;
  26. my $dm = int +($seconds - $dh*60*60) / 60;
  27. my $ds = int $seconds - $dh*60*60 - $dm*60;
  28.  
  29. printf "Waking up in %d hours %d minutes %d seconds\n",
  30. $dh, $dm, $ds;
  31. sleep $seconds;
  32.  
  33. my %levels = (
  34. Master => 90,
  35. PCM => 100,
  36. );
  37. for my $ch (keys %levels) {
  38. system qw/amixer set/, $ch, "$levels{$ch}%";
  39. system qw/amixer set/, $ch, "unmute";
  40. }
  41. system "reflash";
  42. system "mplayer", glob
  43. "\Q/home/substack/media/music/Modest Mouse/2001 - sad sappy sucker/\E*";
  44. }
  45. else {
  46. system qw/killall mplayer/;
  47. }
Add Comment
Please, Sign In to add comment