Added an "already running" check to the wrap script
[rip_dvd/.git] / rip_dvd.wrap
index 09ba254ffeed64e59387320b41141965d27b64c4..e9bcb632c0810bd5788358246dc8c051d94eb4ea 100755 (executable)
@@ -1,4 +1,19 @@
 #!/bin/bash
+# The purpose of this script is to encapsulate the calls
+# made to the rip_dvd script. This is done to help distribute
+# the resulting ripped files to the proper folders. This
+# script is called from the mythtv menus for example with a
+# smaller set of options.
+
+##############################################
+# Don't run if a previous rip attempt is still running
+SCRIPT_NAME=${0##*/}
+MY_PID=$$
+ps -ef | grep $SCRIPT_NAME | grep -v grep | grep -v emacs | grep -v vi | grep -v "/bin/sh -c" | grep -v $MY_PID
+if [[ $? == 0 ]]; then
+  echo -e "-E- Found an instance of this script already running. Aborting this additional attempt to rip...\n"
+  exit 1
+fi
 
 ##############################################
 # COMMAND LINE PROCESSING
@@ -16,6 +31,18 @@ if [ -z "$dvdtype" ]; then
   usage
 fi
 
+mydir=$(cd $(dirname $0) && pwd)
+if [ -z "$ripcmd" ]
+then
+  if [ -x "$mydir/rip_dvd" ]
+  then
+    ripcmd="$mydir/rip_dvd"
+  else
+    echo >&2 "Cannot find your rip_dvd command!"
+    exit 1
+  fi
+fi
+
 ##############################################################################
 # Local Machine Settings:
 # Sources both the "default" conf file tracked by GIT (rip_dvd.conf.dist)
@@ -25,8 +52,27 @@ fi
 # in a way that won't get clobbered when you pull updates from my GIT repo.
 ##############################################################################
 config="${0%/*}/rip_dvd.conf"
-[ -e "${config}.dist" ] && . ${config}.dist
-[ -e "${config}" ] && . ${config}
+
+# The config file will be searched for in the following location order:
+found_config=0
+
+# 1) /path/to/rip_dvd/script/rip_dvd.conf.dist
+[ -e "${config}.dist" ] && found_config=1 && . "${config}.dist"
+
+# 2) /path/to/rip_dvd/script/rip_dvd.conf
+[ -e "${config}" ] && found_config=1 && . "${config}"
+
+# 3) /etc/rip_dvd.conf
+[ -e "/etc/rip_dvd.conf" ] && found_config=1 && . "/etc/rip_dvd.conf"
+
+# 4) $PWD/rip_dvd.conf
+[ -e "$PWD/rip_dvd.conf" ] && found_config=1 && . "$PWD/rip_dvd.conf"
+
+# Check to make sure we found the config file
+if [ $found_config -eq 0 ]; then
+  echo "-E- Unable to find the rip_dvd.conf file: $config"
+  exit 1
+fi
 
 ##############################################
 # get the name of the DVD from the DVD disk