add wrapper script

This commit is contained in:
2026-02-03 12:29:01 -07:00
parent 0eef816117
commit 7b4c6bff1b
2 changed files with 25 additions and 3 deletions

View File

@@ -1,11 +1,10 @@
use std::{env::args, io::{self, BufRead, Read, stdin}}; use std::{env::args, fs::OpenOptions, io::{self, Read, Write}};
use ratatui::{ use ratatui::{
DefaultTerminal, Frame, crossterm::event::{self, Event}, layout::{self, Constraint, Layout}, style::{Style, palette::material::{BLACK, WHITE}}, widgets::{Block, BorderType, Paragraph} DefaultTerminal, Frame, crossterm::event::{self, Event}, layout::{self, Constraint, Layout}, style::{Style, palette::material::{BLACK, WHITE}}, widgets::{Block, BorderType, Paragraph}
}; };
fn main() -> Result<(), std::io::Error> { fn main() -> Result<(), std::io::Error> {
// let mut buffer = Vec::new();
let mut buffer = String::new(); let mut buffer = String::new();
let stdin = io::stdin(); let stdin = io::stdin();
let mut handle = stdin.lock(); let mut handle = stdin.lock();
@@ -19,7 +18,15 @@ fn main() -> Result<(), std::io::Error> {
ratatui::restore(); ratatui::restore();
let v = &app.options[app.index]; let v = &app.options[app.index];
println!("{}", v);
let args = args();
// gets the last arg
let path = args.skip(1).fold(String::new(), |_last, next| next);
if let Ok(mut file) = OpenOptions::new().write(true).create(false).open(&path) {
file.write_all(v.as_bytes()).expect("Could not write all bytes");
} else {
println!("{v}");
}
return res; return res;
} }

15
wrapper.sh Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Make a buffered FIFO queue
mkfifo /tmp/fifo 2> /dev/null
exec 4<> /tmp/fifo
# Put the output to fd 4 and put the TUI to 2, since pipes redirect 1 by default
cat /dev/stdin | ./target/release/select_option /proc/self/fd/4 1>&2
read -r VAL < /proc/self/fd/4
echo $VAL
rm /tmp/fifo