From ae22f22a931b207301681f2fc948e8e9cfd1daf7 Mon Sep 17 00:00:00 2001 From: Zachary Dremann Date: Wed, 25 Jun 2014 15:50:16 -0400 Subject: Updated for Cargo --- examples/Cargo.toml | 18 +++++++++++++++++ examples/client.rs | 53 ------------------------------------------------- examples/rusti.rs | 54 -------------------------------------------------- examples/src/client.rs | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ examples/src/rusti.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 107 deletions(-) create mode 100644 examples/Cargo.toml delete mode 100644 examples/client.rs delete mode 100644 examples/rusti.rs create mode 100644 examples/src/client.rs create mode 100644 examples/src/rusti.rs (limited to 'examples') diff --git a/examples/Cargo.toml b/examples/Cargo.toml new file mode 100644 index 0000000..edb8b22 --- /dev/null +++ b/examples/Cargo.toml @@ -0,0 +1,18 @@ +[package] + +name = "rusty-irc-examples" +version = "0.1.0" +authors = [ "dremann@gmail.com" ] + +[[bin]] + +name = "rusti" + +[[bin]] + +name = "client" + +[dependencies.rusty-irc] + +path = "../" +version = "0.1.0" diff --git a/examples/client.rs b/examples/client.rs deleted file mode 100644 index 9c5e15a..0000000 --- a/examples/client.rs +++ /dev/null @@ -1,53 +0,0 @@ -extern crate irc; -extern crate libc; - -use std::io::stdio; - -use irc::IrcClient; - -fn main() { - let mut stderr = stdio::stderr(); - - let mut args = std::os::args().move_iter(); - args.next(); - let host = args.next().expect("No hostname passed"); - let port: u16 = from_str(args.next().unwrap_or_else(|| { let _ = writeln!(stderr, "No port given. Assuming 6667."); "6667".to_string() }).as_slice()) - .expect("Port must be a number"); - - drop(args); - - let (tx, rx) = channel(); - - let nicks = (vec!["rusti-irc".to_string()]).move_iter(); - let config = irc::ClientConfig { - nicks: nicks, - username: "dremann".to_string(), - real_name: "Zachary Dremann".to_string() - }; - - let client = IrcClient::new(config, host.as_slice(), port, tx).unwrap(); - let sender = client.sender().clone(); - - spawn(proc() { - let mut stdin = stdio::stdin(); - for line in stdin.lines() { - match line { - Ok(s) => { - match from_str(s.as_slice()) { - Some(msg) => { if sender.send_opt(msg).is_err() { break; } }, - None => () - } - } - Err(_) => break, - } - } - }); - - for msg in rx.iter() { - let c = client.clone(); - println!("{}", c.nick()); - println!("{} {}", msg.prefix, msg.command); - } - - unsafe { libc::exit(0); } -} diff --git a/examples/rusti.rs b/examples/rusti.rs deleted file mode 100644 index 91d50dd..0000000 --- a/examples/rusti.rs +++ /dev/null @@ -1,54 +0,0 @@ -extern crate irc; -extern crate getopts; -extern crate libc; - -use std::os; -use std::io; - -use getopts::{getopts, opt, optflag, optflagmulti, optmulti, optopt, reqopt, short_usage, usage}; - -struct ShowableTraitObject<'a>(&'a std::fmt::Show); - -impl<'a> std::fmt::Show for ShowableTraitObject<'a> { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - let &ShowableTraitObject(inner) = self; - inner.fmt(f) - } -} - -fn main() { - - let opts = [ - optflag("h", "help", "Print help information"), - optmulti("c", "channel", "What channel should be joined", "CHANNEL"), - optopt("p", "port", "What port should be used to connect to server", "PORT"), - optflag("", "ignore-privmsg", "Ignore messages sent directly, only respond to those in a joinned channel"), - ]; - let args = os::args(); - let program = args.get(0); - - let err: |i32, &std::fmt::Show| -> ! = |code: i32, err_msg: &std::fmt::Show| { - let mut stderr = io::stderr(); - let _ = writeln!(stderr, "{}", ShowableTraitObject(err_msg)); - let short = short_usage(program.as_slice(), opts); - let _ = writeln!(stderr, "{}", usage(short.as_slice(), opts)); - unsafe{ libc::exit(code) } - }; - - let matches = match getopts(args.tail(), opts) { - Ok(m) => { m } - Err(e) => { err(1, &e); } - }; - - if matches.opt_present("help") { - let short = short_usage(program.as_slice(), opts); - println!("{}", usage(short.as_slice(), opts)); - return; - } - - let channels = matches.opt_strs("channel"); - let port: u16 = from_str(matches.opt_str("port").unwrap_or("6667".to_string()).as_slice()).expect("Please pass a port number to -p or --port"); - let ignore_privmsg = matches.opt_present("ignore-privmsg"); - let server = if matches.free.len() != 1 { err(2, &"No server passed") } else { matches.free.move_iter().next().unwrap() }; - println!("server:{}, channels:{}, port:{}, ignore?:{}", server, channels, port, ignore_privmsg); -} diff --git a/examples/src/client.rs b/examples/src/client.rs new file mode 100644 index 0000000..9c5e15a --- /dev/null +++ b/examples/src/client.rs @@ -0,0 +1,53 @@ +extern crate irc; +extern crate libc; + +use std::io::stdio; + +use irc::IrcClient; + +fn main() { + let mut stderr = stdio::stderr(); + + let mut args = std::os::args().move_iter(); + args.next(); + let host = args.next().expect("No hostname passed"); + let port: u16 = from_str(args.next().unwrap_or_else(|| { let _ = writeln!(stderr, "No port given. Assuming 6667."); "6667".to_string() }).as_slice()) + .expect("Port must be a number"); + + drop(args); + + let (tx, rx) = channel(); + + let nicks = (vec!["rusti-irc".to_string()]).move_iter(); + let config = irc::ClientConfig { + nicks: nicks, + username: "dremann".to_string(), + real_name: "Zachary Dremann".to_string() + }; + + let client = IrcClient::new(config, host.as_slice(), port, tx).unwrap(); + let sender = client.sender().clone(); + + spawn(proc() { + let mut stdin = stdio::stdin(); + for line in stdin.lines() { + match line { + Ok(s) => { + match from_str(s.as_slice()) { + Some(msg) => { if sender.send_opt(msg).is_err() { break; } }, + None => () + } + } + Err(_) => break, + } + } + }); + + for msg in rx.iter() { + let c = client.clone(); + println!("{}", c.nick()); + println!("{} {}", msg.prefix, msg.command); + } + + unsafe { libc::exit(0); } +} diff --git a/examples/src/rusti.rs b/examples/src/rusti.rs new file mode 100644 index 0000000..91d50dd --- /dev/null +++ b/examples/src/rusti.rs @@ -0,0 +1,54 @@ +extern crate irc; +extern crate getopts; +extern crate libc; + +use std::os; +use std::io; + +use getopts::{getopts, opt, optflag, optflagmulti, optmulti, optopt, reqopt, short_usage, usage}; + +struct ShowableTraitObject<'a>(&'a std::fmt::Show); + +impl<'a> std::fmt::Show for ShowableTraitObject<'a> { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + let &ShowableTraitObject(inner) = self; + inner.fmt(f) + } +} + +fn main() { + + let opts = [ + optflag("h", "help", "Print help information"), + optmulti("c", "channel", "What channel should be joined", "CHANNEL"), + optopt("p", "port", "What port should be used to connect to server", "PORT"), + optflag("", "ignore-privmsg", "Ignore messages sent directly, only respond to those in a joinned channel"), + ]; + let args = os::args(); + let program = args.get(0); + + let err: |i32, &std::fmt::Show| -> ! = |code: i32, err_msg: &std::fmt::Show| { + let mut stderr = io::stderr(); + let _ = writeln!(stderr, "{}", ShowableTraitObject(err_msg)); + let short = short_usage(program.as_slice(), opts); + let _ = writeln!(stderr, "{}", usage(short.as_slice(), opts)); + unsafe{ libc::exit(code) } + }; + + let matches = match getopts(args.tail(), opts) { + Ok(m) => { m } + Err(e) => { err(1, &e); } + }; + + if matches.opt_present("help") { + let short = short_usage(program.as_slice(), opts); + println!("{}", usage(short.as_slice(), opts)); + return; + } + + let channels = matches.opt_strs("channel"); + let port: u16 = from_str(matches.opt_str("port").unwrap_or("6667".to_string()).as_slice()).expect("Please pass a port number to -p or --port"); + let ignore_privmsg = matches.opt_present("ignore-privmsg"); + let server = if matches.free.len() != 1 { err(2, &"No server passed") } else { matches.free.move_iter().next().unwrap() }; + println!("server:{}, channels:{}, port:{}, ignore?:{}", server, channels, port, ignore_privmsg); +} -- cgit v1.2.3-54-g00ecf