44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
|
extern crate irc;
|
||
|
|
||
|
use irc::client::prelude::*;
|
||
|
use std::default::Default;
|
||
|
use std::env;
|
||
|
|
||
|
fn main() {
|
||
|
let repository_slug = env::var("TRAVIS_REPO_SLUG").unwrap();
|
||
|
let branch = env::var("TRAVIS_BRANCH").unwrap();
|
||
|
let commit = env::var("TRAVIS_COMMIT").unwrap();
|
||
|
let commit_message = env::var("TRAVIS_COMMIT_MESSAGE").unwrap();
|
||
|
|
||
|
let config = Config {
|
||
|
nickname: Some("irc-crate-ci".to_owned()),
|
||
|
server: Some("irc.pdgn.co".to_owned()),
|
||
|
use_ssl: Some(true),
|
||
|
..Default::default()
|
||
|
};
|
||
|
|
||
|
let mut reactor = IrcReactor::new().unwrap();
|
||
|
let client = reactor.prepare_client_and_connect(&config).unwrap();
|
||
|
client.identify().unwrap();
|
||
|
|
||
|
reactor.register_client_with_handler(client, move |client, message| {
|
||
|
match message.command {
|
||
|
Command::Response(Response::RPL_ISUPPORT, _, _) => {
|
||
|
client.send_privmsg(
|
||
|
"#commits",
|
||
|
format!(
|
||
|
"Hello from Travis CI! {}/{} {}: {}",
|
||
|
repository_slug, branch, commit, commit_message
|
||
|
),
|
||
|
)?;
|
||
|
client.send_quit("QUIT")?;
|
||
|
}
|
||
|
_ => (),
|
||
|
};
|
||
|
|
||
|
Ok(())
|
||
|
});
|
||
|
|
||
|
reactor.run().unwrap();
|
||
|
}
|