mirror of
https://github.com/msfjarvis/clipboard-substitutor
synced 2025-08-14 22:27:03 +05:30
Implement matchers and actions
This commit is contained in:
parent
05201d7de7
commit
3fd078e51b
4 changed files with 84 additions and 2 deletions
16
src/main.rs
16
src/main.rs
|
@ -1,9 +1,10 @@
|
|||
mod config;
|
||||
|
||||
use anyhow::{anyhow, Result};
|
||||
use clipboard::{ClipboardContext, ClipboardProvider};
|
||||
use dirs::config_dir;
|
||||
|
||||
use crate::config::Replacements;
|
||||
use crate::config::{Act, Match, Replacements};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut config_path = config_dir().ok_or(anyhow!("Failed to get config dir"))?;
|
||||
|
@ -16,5 +17,16 @@ fn main() -> Result<()> {
|
|||
} else {
|
||||
Replacements::default()
|
||||
};
|
||||
Ok(())
|
||||
let mut clipboard: ClipboardContext = ClipboardProvider::new().expect("Failed to get clipboard");
|
||||
loop {
|
||||
let contents = clipboard.get_contents().expect("Failed to read clipboard");
|
||||
if let Some(subst) = config
|
||||
.substitutors
|
||||
.iter()
|
||||
.find(|subst| subst.matcher.clone().check_match(&contents))
|
||||
{
|
||||
let result = subst.action.clone().apply_action(contents);
|
||||
let _ = clipboard.set_contents(result);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue