forked from ungleich-public/cdist
add sh -e header to code to avoid OSError: [Errno 8] Exec format error
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
parent
0d1f121e21
commit
db658328d2
1 changed files with 5 additions and 1 deletions
|
@ -59,6 +59,7 @@ REMOTE_OBJECT_DIR = os.path.join(REMOTE_BASE_DIR, "object")
|
||||||
REMOTE_TYPE_DIR = os.path.join(REMOTE_CONF_DIR, "type")
|
REMOTE_TYPE_DIR = os.path.join(REMOTE_CONF_DIR, "type")
|
||||||
REMOTE_GLOBAL_EXPLORER_DIR = os.path.join(REMOTE_CONF_DIR, "explorer")
|
REMOTE_GLOBAL_EXPLORER_DIR = os.path.join(REMOTE_CONF_DIR, "explorer")
|
||||||
|
|
||||||
|
CODE_HEADER = "#!/bin/sh -e"
|
||||||
DOT_CDIST = ".cdist"
|
DOT_CDIST = ".cdist"
|
||||||
VERSION = "2.0.0"
|
VERSION = "2.0.0"
|
||||||
|
|
||||||
|
@ -517,15 +518,18 @@ class Cdist:
|
||||||
os.path.basename(bin)[3:])
|
os.path.basename(bin)[3:])
|
||||||
|
|
||||||
outfile_fd = open(outfile, "w")
|
outfile_fd = open(outfile, "w")
|
||||||
|
outfile_fd.write(CODE_HEADER)
|
||||||
|
|
||||||
self.shell_run_or_debug_fail(bin, [bin], env=env, stdout=outfile_fd)
|
self.shell_run_or_debug_fail(bin, [bin], env=env, stdout=outfile_fd)
|
||||||
outfile_fd.close()
|
outfile_fd.close()
|
||||||
|
|
||||||
status = os.stat(outfile)
|
status = os.stat(outfile)
|
||||||
|
|
||||||
# Remove output if empty, else make it executable
|
# Remove output if empty, else make it executable
|
||||||
if status.st_size == 0:
|
if status.st_size == len(CODE_HEADER):
|
||||||
os.unlink(outfile)
|
os.unlink(outfile)
|
||||||
else:
|
else:
|
||||||
|
# Add header and make executable
|
||||||
os.chmod(outfile, stat.S_IXUSR | stat.S_IRUSR | stat.S_IWUSR)
|
os.chmod(outfile, stat.S_IXUSR | stat.S_IRUSR | stat.S_IWUSR)
|
||||||
|
|
||||||
if mode == "code":
|
if mode == "code":
|
||||||
|
|
Loading…
Reference in a new issue