#!/usr/bin/env bash
# Create a named reaction and inspect each species without running calculations.
set -euo pipefail
output=${1:?Usage: bash reaction_cli.sh NEW_DIRECTORY}
mkdir "$output"
vibe-sketch --version
vibe-sketch convert 'C=CC=C.C=C>>C1=CCCCC1' --from smiles -o "$output/diels-alder.vsk"
vibe-sketch validate "$output/diels-alder.vsk"
vibe-sketch info "$output/diels-alder.vsk" --json --no-names > "$output/report.json"
vibe-sketch schema --output "$output/schema.json"
vibe-sketch writers --json > "$output/writers.json"
vibe-sketch clean "$output/diels-alder.vsk" -o "$output/clean.vsk"
vibe-sketch render "$output/clean.vsk" -o "$output/diels-alder.svg"
vibe-sketch embed "$output/clean.vsk" --count 2 -o "$output/ready.vsk"
vibe-sketch input "$output/ready.vsk" --all --program vibeqc --task sp \
  --method B3LYP --basis def2-SVP --output-dir "$output/inputs"
vibe-sketch convert "$output/ready.vsk" --to rxn -o "$output/diels-alder.rxn"
# Naming is optional: unavailable engine is exit 1; unverified name is exit 3.
set +e
vibe-sketch name 'C=C' > "$output/name.txt" 2> "$output/name-status.txt"
name_status=$?
set -e
if [[ $name_status == 1 && $(< "$output/name-status.txt") == *"naming needs vibe-qc"* ]]; then
  printf 'Naming engine absent; see name-status.txt for the install hint.\n'
elif [[ $name_status != 0 && $name_status != 3 ]]; then
  exit "$name_status"
fi
printf 'Prepared figures and inputs in %s. No calculation was submitted.\n' "$output"
