Skip to content

Commit

Permalink
create workflow: properly create intermediate paths
Browse files Browse the repository at this point in the history
  • Loading branch information
karmab committed Aug 1, 2024
1 parent 97578c0 commit b1bab5b
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions kvirt/baseconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -1361,8 +1361,14 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
for entry in files:
if not isinstance(entry, dict):
entry = {'origin': entry}
origin = os.path.expanduser(entry.get('origin'))
destdir = os.path.dirname(entry.get('path')) if 'path' in entry else default_destdir
origin = os.path.expanduser(entry['origin'])
if 'path' in entry:
destdir = os.path.dirname(entry['path'])
else:
destdir = f"{default_destdir}/{os.path.dirname(entry['origin'])}"
if not os.path.exists(destdir):
pprint(f"Creating directory {destdir}")
os.makedirs(destdir)
content = entry.get('content')
render = entry.get('render', True)
if isinstance(render, str):
Expand All @@ -1375,8 +1381,9 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
return {'result': 'failure', 'reason': msg}
elif os.path.isdir(origin):
origin = entry.get('origin')
if not os.path.exists(f"{destdir}/{origin}"):
os.makedirs(f"{destdir}/{origin}")
if not os.path.exists(f"{destdir}/{os.path.basename(origin)}"):
pprint(f"Creating directory {destdir}/{os.path.basename(origin)}")
os.makedirs(f"{destdir}/{os.path.basename(origin)}")
directories.append(origin)
for _fic in os.listdir(origin):
directoryfiles.append(f'{origin}/{_fic}')
Expand All @@ -1402,7 +1409,7 @@ def create_workflow(self, workflow, overrides={}, outputdir=None, run=True):
entrydir = os.path.dirname(entry)
entryname = os.path.basename(entry)
rendered = self.process_inputfile(workflow, entry, overrides=overrides)
destfile = f"{destdir}/{entrydir}/{entryname}"
destfile = f"{default_destdir}/{entrydir}/{entryname}"
with open(destfile, 'w') as f:
f.write(rendered)
os.chmod(destfile, stat.S_IMODE(os.stat(entry).st_mode))
Expand Down

0 comments on commit b1bab5b

Please sign in to comment.