cmd.pl 641 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use IO::Socket::UNIX;
  5. # Local modules
  6. use Cwd qw(abs_path);
  7. use File::Basename qw(dirname);
  8. use lib dirname(abs_path($0));
  9. use DMX;
  10. # App config
  11. my $DATA_DIR = DMX::dataDir();
  12. # Command-line parameters
  13. my ($DEV, $CMD) = @ARGV;
  14. my $CMD_FILE = $DATA_DIR . uc($DEV) . '.socket';
  15. # Sanity check
  16. if (!-S $CMD_FILE) {
  17. die('Invalid command file: ' . $CMD_FILE . "\n");
  18. }
  19. # Socket init
  20. my $sock = DMX::clientSock($CMD_FILE);
  21. # Send the command
  22. $sock->send($CMD)
  23. or die('Unable to write command to socket: ' . $CMD_FILE . ': ' . $CMD . ": ${!}\n");
  24. # Cleanup
  25. $sock->close();
  26. undef($sock);
  27. exit(0);