pointguard/
clip.rs

1use crate::error::Result;
2use crate::opts::Clip;
3use cli_clipboard::{ClipboardContext, ClipboardProvider};
4use std::io::{self, Read};
5
6pub fn clip(opts: Clip) -> Result<()> {
7    let mut clipboard = ClipboardContext::new()?;
8    let mut buffer = String::new();
9    io::stdin().read_to_string(&mut buffer)?;
10    clipboard.set_contents(buffer.trim_end().trim_end_matches('\n').to_owned())?;
11    std::thread::sleep(std::time::Duration::from_secs(opts.clip_time));
12    clipboard.clear()?;
13    Ok(())
14}