Updated swash run with log file
This commit is contained in:
parent
c456d3d671
commit
1449b66917
|
@ -1,3 +1,6 @@
|
||||||
|
import logging
|
||||||
|
import sys
|
||||||
|
import argparse
|
||||||
import pathlib
|
import pathlib
|
||||||
import subprocess
|
import subprocess
|
||||||
import configparser
|
import configparser
|
||||||
|
@ -5,24 +8,41 @@ import shutil
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description="Run swash model")
|
||||||
|
parser.add_argument("-v", "--verbose", action="count", default=0)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
logging.basicConfig(level=max((10, 20 - 10 * args.verbose)))
|
||||||
|
log = logging.getLogger("swash")
|
||||||
|
|
||||||
|
log.info("Starting swash model")
|
||||||
config = configparser.ConfigParser()
|
config = configparser.ConfigParser()
|
||||||
config.read("config.ini")
|
config.read("config.ini")
|
||||||
|
|
||||||
inp = pathlib.Path(config.get("swash", "input"))
|
inp = pathlib.Path(config.get("swash", "input"))
|
||||||
out = pathlib.Path(config.get("swash", "out"))
|
out = pathlib.Path(config.get("swash", "out"))
|
||||||
|
if out.exists():
|
||||||
|
log.error(f"Swash output '{out}' already exists")
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory(prefix="swash_", dir=".") as tmp_raw:
|
with tempfile.TemporaryDirectory(prefix="swash_", dir=".") as tmp_raw:
|
||||||
tmpdir = pathlib.Path(tmp_raw)
|
tmpdir = pathlib.Path(tmp_raw)
|
||||||
|
|
||||||
|
log.info(f"Copying files to '{tmpdir}'")
|
||||||
shutil.copy2(inp, tmpdir)
|
shutil.copy2(inp, tmpdir)
|
||||||
shutil.copytree(
|
shutil.copytree(
|
||||||
pathlib.Path(config.get("data", "out")), tmpdir, dirs_exist_ok=True
|
pathlib.Path(config.get("data", "out")), tmpdir, dirs_exist_ok=True
|
||||||
)
|
)
|
||||||
|
with open(tmpdir.joinpath("sws.log"), "w") as logfile:
|
||||||
|
log.info(f"Runing swash in '{tmpdir}'")
|
||||||
subprocess.run(
|
subprocess.run(
|
||||||
(config.get("swash", "swashrun"), "-input", inp.name), cwd=tmpdir
|
(config.get("swash", "swashrun"), "-input", inp.name),
|
||||||
|
cwd=tmpdir,
|
||||||
|
stdout=logfile,
|
||||||
|
stderr=logfile,
|
||||||
)
|
)
|
||||||
|
|
||||||
if out.exists():
|
log.info(f"Moving swash output to '{out}'")
|
||||||
shutil.rmtree(out)
|
|
||||||
shutil.move(tmpdir, out)
|
shutil.move(tmpdir, out)
|
||||||
|
|
||||||
|
log.info(f"Swash model finished successfully")
|
||||||
|
|
Loading…
Reference in New Issue