/* This file is part of Takwrap. Takwrap is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Foobar is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Foobar. If not, see . */ use std::fs::{remove_file, File}; use std::io::{Error, ErrorKind, Result, Write}; use std::process::Command; use crate::game::*; use crate::tui::*; pub const FILE_NAME: &str = "takwrap_ptn_consult.ptn"; pub fn consult_next_action(game: &Game, proc: &str) -> Result { let file = File::create(FILE_NAME)?; write!(&file, "{}", game)?; let output = Command::new(proc).args(&[FILE_NAME]).output()?; match String::from_utf8(output.stdout) { Err(e) => Err(Error::new(ErrorKind::InvalidData, e)), Ok(raw) => Ok(TUIResult::Raw(raw.trim().to_string())), } } pub fn consulter_clean_up() -> Result<()> { remove_file(FILE_NAME) }