From 4f0ea4dc53ce9097b673ef8541e9affd7fed4680 Mon Sep 17 00:00:00 2001 From: Radostin Stoyanov Date: Wed, 1 Nov 2017 00:19:44 +0000 Subject: utils: Add is_installed function Add utility function to check whether an executable is available in the PATH env variable. --- src/virtBootstrap/utils.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src') diff --git a/src/virtBootstrap/utils.py b/src/virtBootstrap/utils.py index 84d1629..ea84ed3 100644 --- a/src/virtBootstrap/utils.py +++ b/src/virtBootstrap/utils.py @@ -646,3 +646,16 @@ def mapping_uid_gid(dest, uid_map, gid_map): balance_uid_gid_maps(uid_map, gid_map) for uid, gid in zip(uid_map, gid_map): map_id(dest, uid, gid) + + +def is_installed(program): + """ + Try to find executable listed in the PATH env variable. + + Returns the complete filename or None if not found. + """ + for path in os.environ["PATH"].split(os.pathsep): + exec_file = os.path.join(path, program) + if os.path.isfile(exec_file) and os.access(exec_file, os.X_OK): + return exec_file + return None -- cgit