chore: initialize insar management system v2
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
"""CLI runner for ENVI workflows in a subprocess.
|
||||
|
||||
Usage (called by job_handlers.py):
|
||||
python -m backend.app.services.envi_runner_cli \
|
||||
--workflow import \
|
||||
--root-dir Z:/Test_data/Test_IDL_1 \
|
||||
[--num-to-process 0] \
|
||||
[--timeout-seconds 14400]
|
||||
|
||||
Outputs a single JSON line to stdout on success.
|
||||
Errors go to stderr with non-zero exit code.
|
||||
"""
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import sys
|
||||
|
||||
from ..config import ensure_project_env_loaded
|
||||
|
||||
|
||||
def _parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Run ENVI/SARscape workflow in isolated process."
|
||||
)
|
||||
parser.add_argument(
|
||||
"--workflow",
|
||||
required=True,
|
||||
choices=["import", "dinsar", "dinsar_custom"],
|
||||
)
|
||||
parser.add_argument("--root-dir", required=True)
|
||||
parser.add_argument("--num-to-process", type=int, default=0)
|
||||
parser.add_argument("--timeout-seconds", type=int, default=None)
|
||||
parser.add_argument("--job-id", type=str, default=None)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main() -> int:
|
||||
ensure_project_env_loaded()
|
||||
args = _parse_args()
|
||||
try:
|
||||
from .envi_service import run_workflow
|
||||
|
||||
record = run_workflow(
|
||||
workflow=args.workflow,
|
||||
root_dir=args.root_dir,
|
||||
num_to_process=args.num_to_process,
|
||||
timeout=args.timeout_seconds or 14400,
|
||||
job_id=args.job_id,
|
||||
)
|
||||
print(json.dumps(record, ensure_ascii=False))
|
||||
return 0
|
||||
except Exception as exc:
|
||||
err = {
|
||||
"ok": False,
|
||||
"error": str(exc),
|
||||
"workflow": args.workflow,
|
||||
}
|
||||
print(json.dumps(err, ensure_ascii=False), file=sys.stderr)
|
||||
return 1
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Reference in New Issue
Block a user