import os import stat def set_executable(top): def set_exec(name): print "Setting exec for '%s'" % name mode = os.stat(name).st_mode os.chmod(name, mode | stat.S_IEXEC) def unset_exec(name): print "Unsetting exec for '%s'" % name mode = os.stat(name).st_mode os.chmod(name, mode ^ stat.S_IEXEC) for root, dirs, files in os.walk(top): for name in files: complete_name = os.path.join(root, name) f = open(complete_name, 'r') header = f.read(4) f.close() if header[0:2] == '!#' or header[1:4] == 'ELF': set_exec(complete_name) else: unset_exec(complete_name) for name in dirs: complete_name = os.path.join(root, name) set_exec(complete_name)