summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cerbero/packages/linux_bundle.py22
1 files changed, 20 insertions, 2 deletions
diff --git a/cerbero/packages/linux_bundle.py b/cerbero/packages/linux_bundle.py
index 7623d5c2..7b6c38d9 100644
--- a/cerbero/packages/linux_bundle.py
+++ b/cerbero/packages/linux_bundle.py
@@ -28,15 +28,33 @@ from cerbero.packages import PackagerBase
LAUNCH_BUNDLE_COMMAND = """# Try to discover plugins only once
+LOCKFILE="/tmp/%(appname)s-bundle.lock"
+if [ -e $LOCKFILE ]
+then
+ PID=$(cat $LOCKFILE)
+ if kill -0 $PID 2> /dev/null
+ then
+ echo "$? $PID pitivi already running -> exiting"
+ exit 1
+ else
+ echo "Stalled process $PID allow restarting"
+ fi
+fi
+echo $$ > $LOCKFILE
+
PLUGINS_SYMLINK=${HOME}/.cache/gstreamer-1.0/%(appname)s-gstplugins
+rm ${PLUGINS_SYMLINK} > /dev/null 2>&1
ln -s ${APPDIR}/lib/gstreamer-1.0/ ${PLUGINS_SYMLINK}
if [ $? -ne 0 ]; then
- echo "Bundle is already running, exiting"
- exit 1
+ export GST_PLUGIN_PATH=${APPDIR}/lib/gstreamer-1.0/
else
export GST_PLUGIN_PATH=${PLUGINS_SYMLINK}
fi
+trap 'ECODE=$?;
+ echo "[statsgen] Removing lock. Exit: ${ETXT[ECODE]}($ECODE)" >&2
+ rm "${PLUGINS_SYMLINK}" "${LOCKFILE}"' 0
+
which gdk-pixbuf-query-loaders > /dev/null 2>&1
if [ $? -eq 0 ]; then
export GDK_PIXBUF_MODULE_FILE=/tmp/$(basename $APPDIR).gdk-pixbuf-loader.cache