diff --git a/swash/config.ini b/swash/config.ini index 8d6b9e0..ef13eee 100644 --- a/swash/config.ini +++ b/swash/config.ini @@ -13,4 +13,6 @@ psize=Psize.dat root=cache [swash] +input=sws/INPUT.sws +swashrun=/opt/swash/swash/swashrun out=out diff --git a/swash/processing/swash.py b/swash/processing/swash.py new file mode 100644 index 0000000..be20683 --- /dev/null +++ b/swash/processing/swash.py @@ -0,0 +1,28 @@ +import pathlib +import subprocess +import configparser +import shutil +import tempfile + + +config = configparser.ConfigParser() +config.read("config.ini") + +inp = pathlib.Path(config.get("swash", "input")) +out = pathlib.Path(config.get("swash", "out")) + +with tempfile.TemporaryDirectory(prefix="swash_") as tmp_raw: + tmpdir = pathlib.Path(tmp_raw) + + shutil.copy2(inp, tmpdir) + shutil.copytree( + pathlib.Path(config.get("out", "root")), tmpdir, dirs_exist_ok=True + ) + + subprocess.run( + (config.get("swash", "swashrun"), "-input", inp.name), cwd=tmpdir + ) + + if out.exists(): + shutil.rmtree(out) + shutil.copytree(tmpdir, out)