Blob Blame History Raw
From 915a63da5e94f85a8f0a211c73f9fafa77bc31f4 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Mon, 24 Aug 2015 15:26:03 +0200
Subject: [PATCH] Add a sanity check to 'recordmydestkop' plugin

Related: rhbz#1228860

Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
 src/pyfros/plugins/screencastrecordmydesktop.py | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/pyfros/plugins/screencastrecordmydesktop.py b/src/pyfros/plugins/screencastrecordmydesktop.py
index 376b52b..63efd7d 100644
--- a/src/pyfros/plugins/screencastrecordmydesktop.py
+++ b/src/pyfros/plugins/screencastrecordmydesktop.py
@@ -17,14 +17,14 @@
 
 from pyfros.screencastbase import ScreencastBase, ScreencastResult
 import pyfros.plugins.const as const
-from subprocess import Popen, PIPE
+from subprocess import Popen, PIPE, DEVNULL
 import fcntl
 import os
 import signal
 #pylint: disable=E0611
 from gi.repository import GLib
 import re
-from pyfros.froslogging import warn
+from pyfros.froslogging import warn, error
 
 
 def getScreencastPluginInstance():
@@ -95,6 +95,13 @@ class ScreencastRecordMyDesktop(ScreencastBase):
         print("ScreencastArea ScreencastRecordMyDesktop")
 
     def IsSuitable(self):
+        try:
+            proc = Popen(["recordmydesktop", "-h"], stdin=DEVNULL, stdout=DEVNULL, stderr=DEVNULL)
+            proc.communicate()
+        except Exception as ex:
+            error("Cannot run 'recordmydesktop': %s" % (str(ex)))
+            return const.SUITABLE_NOT_SUITABLE
+
         return const.SUITABLE_DEFAULT  # 1 is default
 
     def Screencast(self):
-- 
2.5.0