mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-04-24 03:11:24 -07:00
Replace os.access with stat calls for determining the executability of a given path.
This commit is contained in:
parent
734db4ffe9
commit
29ac1a8efc
3 changed files with 16 additions and 2 deletions
|
@ -49,6 +49,7 @@ import syslog
|
|||
import types
|
||||
import time
|
||||
import shutil
|
||||
import stat
|
||||
|
||||
try:
|
||||
from hashlib import md5 as _md5
|
||||
|
@ -247,7 +248,7 @@ class AnsibleModule(object):
|
|||
paths.append(p)
|
||||
for d in paths:
|
||||
path = os.path.join(d, arg)
|
||||
if os.path.exists(path) and os.access(path, os.X_OK):
|
||||
if os.path.exists(path) and self.is_executable(path):
|
||||
bin_path = path
|
||||
break
|
||||
if required and bin_path is None:
|
||||
|
@ -282,6 +283,12 @@ class AnsibleModule(object):
|
|||
print self.jsonify(kwargs)
|
||||
sys.exit(1)
|
||||
|
||||
def is_executable(path):
|
||||
'''is the given path executable?'''
|
||||
return (stat.S_IXUSR & os.stat(path)[stat.ST_MODE]
|
||||
or stat.S_IXGRP & os.stat(path)[stat.ST_MODE]
|
||||
or stat.S_IXOTH & os.stat(path)[stat.ST_MODE])
|
||||
|
||||
def md5(self, filename):
|
||||
''' Return MD5 hex digest of local file, or None if file is not present. '''
|
||||
if not os.path.exists(filename):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue