usertools: check for lspci dependency
authorAnatoly Burakov <anatoly.burakov@intel.com>
Tue, 13 Nov 2018 16:06:26 +0000 (16:06 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Sun, 18 Nov 2018 23:03:52 +0000 (00:03 +0100)
On some distributions (such as CentOS 7) lspci may not be installed
by default, causing exceptions which are difficult to interpret.

Fix devbind script to check if lspci is installed at script startup.

Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Rami Rosen <roszenrami@gmail.com>
usertools/dpdk-devbind.py

index 7d56463..40dc28a 100755 (executable)
@@ -655,6 +655,13 @@ def do_arg_actions():
 
 def main():
     '''program main function'''
+    # check if lspci is installed, suppress any output
+    with open(os.devnull, 'w') as devnull:
+        ret = subprocess.call(['which', 'lspci'],
+                              stdout=devnull, stderr=devnull)
+        if ret != 0:
+            print("'lspci' not found - please install 'pciutils'")
+            sys.exit(1)
     parse_args()
     check_modules()
     clear_data()