Przeglądaj źródła

Mount the media share before running anything else (including the MEDIA_PATH command)

Zachary Kotlarek 13 lat temu
rodzic
commit
f37dd05a82
1 zmienionych plików z 18 dodań i 13 usunięć
  1. 18 13
      dmx/state.pl

+ 18 - 13
dmx/state.pl

@@ -15,8 +15,25 @@ use DMX;
 # Prototypes
 sub mtime($);
 
+# App config
+my $SOCK_TIMEOUT    = 5;
+my $DATA_DIR        = DMX::dataDir();
+my $CMD_FILE        = 'STATE';
+my $MAX_CMD_LEN     = 4096;
+my $RESET_CMD       = $ENV{'HOME'} . '/bin/video/dmx/reset.sh';
+my $MEDIA_MOUNT_CMD = $ENV{'HOME'} . '/bin/video/mountMedia';
+my $MEDIA_CHECK_CMD = $ENV{'HOME'} . '/bin/video/isMediaMounted';
+my $MEDIA_PATH_CMD  = $ENV{'HOME'} . '/bin/video/mediaPath';
+my $PUSH_TIMEOUT    = 20;
+
+# Ensure the media path is available before we get going
+system($MEDIA_MOUNT_CMD);
+my $MEDIA_PATH = `${MEDIA_PATH_CMD}`;
+if (!$MEDIA_PATH || !-d $MEDIA_PATH) {
+	die("Unable to access media path\n");
+}
+
 # User config
-my $MEDIA_PATH     = `~/bin/video/mediaPath`;
 my %DISPLAY_DEVS   = ('TV' => 1, 'PROJECTOR' => 1);
 my $DISPLAY        = undef();
 my $STATE_TIMEOUT  = 180;
@@ -90,15 +107,6 @@ my %EXTRAS = (
 	}
 );
 
-# App config
-my $SOCK_TIMEOUT = 5;
-my $DATA_DIR     = DMX::dataDir();
-my $CMD_FILE     = 'STATE';
-my $MAX_CMD_LEN  = 4096;
-my $RESET_CMD    = $ENV{'HOME'} . '/bin/video/dmx/reset.sh';
-my $MEDIA_CMD    = $ENV{'HOME'} . '/bin/video/mountMedia';
-my $PUSH_TIMEOUT = 20;
-
 # Debug
 my $DEBUG = 0;
 if ($ENV{'DEBUG'}) {
@@ -198,9 +206,6 @@ foreach my $name (keys(%MON_FILES)) {
 	$files{$name} = \%file;
 }
 
-# Try to mount the media share
-system($MEDIA_CMD);
-
 # Delete any existing input files, to ensure our state is reset
 foreach my $file (values(%files)) {
 	if (-e $file->{'path'}) {