pog
This commit is contained in:
parent
921e4b02d1
commit
a53f6d7e28
4 changed files with 32 additions and 4 deletions
|
@ -97,9 +97,11 @@ impl<'a, C> Future for ExecHandle<'a, C> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn listen(conn: impl AsyncRead + Unpin) -> Result<()> {
|
async fn listen(conn: impl AsyncRead + Unpin) -> Result<()> {
|
||||||
|
debug!("amogus");
|
||||||
let mut reader = BufReader::new(conn);
|
let mut reader = BufReader::new(conn);
|
||||||
loop {
|
loop {
|
||||||
let mut next_line = String::new();
|
let mut next_line = String::new();
|
||||||
reader.read_line(&mut next_line).await?;
|
reader.read_line(&mut next_line).await?;
|
||||||
|
debug!("line: {:?}", next_line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,8 @@ use tokio_rustls::{client::TlsStream, rustls::ClientConfig, webpki::DNSNameRef,
|
||||||
|
|
||||||
use self::inner::Client;
|
use self::inner::Client;
|
||||||
|
|
||||||
|
pub type ClientBuilder = ClientNotConnectedBuilder;
|
||||||
|
|
||||||
/// An IMAP client that hasn't been connected yet.
|
/// An IMAP client that hasn't been connected yet.
|
||||||
#[derive(Builder, Clone, Debug)]
|
#[derive(Builder, Clone, Debug)]
|
||||||
pub struct ClientNotConnected {
|
pub struct ClientNotConnected {
|
||||||
|
|
|
@ -138,7 +138,16 @@ pub fn spawn_config_watcher_system() -> Result<(JoinHandle<()>, ConfigWatcher)>
|
||||||
if !config_home.exists() {
|
if !config_home.exists() {
|
||||||
fs::create_dir_all(&config_home)?;
|
fs::create_dir_all(&config_home)?;
|
||||||
}
|
}
|
||||||
inotify.add_watch(&config_home, WatchMask::all())?;
|
inotify
|
||||||
|
.add_watch(&config_home, WatchMask::all())
|
||||||
|
.context("adding watch for config home")?;
|
||||||
|
|
||||||
|
let config_file_path = config_home.join("panorama.toml");
|
||||||
|
if config_file_path.exists() {
|
||||||
|
inotify
|
||||||
|
.add_watch(config_file_path, WatchMask::CLOSE)
|
||||||
|
.context("adding watch for config file")?;
|
||||||
|
}
|
||||||
debug!("watching {:?}", config_home);
|
debug!("watching {:?}", config_home);
|
||||||
|
|
||||||
let (config_tx, config_update) = watch::channel(Config::default());
|
let (config_tx, config_update) = watch::channel(Config::default());
|
||||||
|
|
|
@ -5,11 +5,11 @@ mod imap2;
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use futures::stream::StreamExt;
|
use futures::stream::StreamExt;
|
||||||
use panorama_imap::builders::command::Command as ImapCommand;
|
use panorama_imap::{client::ClientBuilder, command::Command as ImapCommand};
|
||||||
use tokio::{sync::mpsc::UnboundedReceiver, task::JoinHandle};
|
use tokio::{sync::mpsc::UnboundedReceiver, task::JoinHandle};
|
||||||
use tokio_stream::wrappers::WatchStream;
|
use tokio_stream::wrappers::WatchStream;
|
||||||
|
|
||||||
use crate::config::{Config, ConfigWatcher};
|
use crate::config::{Config, ConfigWatcher, MailAccountConfig, TlsMethod};
|
||||||
|
|
||||||
use self::imap2::open_imap_connection;
|
use self::imap2::open_imap_connection;
|
||||||
|
|
||||||
|
@ -48,7 +48,8 @@ pub async fn run_mail(
|
||||||
let handle = tokio::spawn(async {
|
let handle = tokio::spawn(async {
|
||||||
for acct in config.mail_accounts.into_iter() {
|
for acct in config.mail_accounts.into_iter() {
|
||||||
debug!("opening imap connection for {:?}", acct);
|
debug!("opening imap connection for {:?}", acct);
|
||||||
open_imap_connection(acct.imap).await.unwrap();
|
osu(acct).await;
|
||||||
|
// open_imap_connection(acct.imap).await.unwrap();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -57,3 +58,17 @@ pub async fn run_mail(
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn osu(acct: MailAccountConfig) -> Result<()> {
|
||||||
|
let builder = ClientBuilder::default()
|
||||||
|
.hostname(acct.imap.server.clone())
|
||||||
|
.port(acct.imap.port)
|
||||||
|
.tls(matches!(acct.imap.tls, TlsMethod::On))
|
||||||
|
.build()
|
||||||
|
.map_err(|err| anyhow!("err: {}", err))?;
|
||||||
|
|
||||||
|
debug!("connecting to {}:{}", &acct.imap.server, acct.imap.port);
|
||||||
|
let unauth = builder.connect().await;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue