Initial commit: borrow from egbot
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/target
|
||||||
|
/lysenko.yml
|
||||||
|
**/*.rs.bk
|
1756
Cargo.lock
generated
Normal file
1756
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
14
Cargo.toml
Normal file
14
Cargo.toml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
[package]
|
||||||
|
name = "lysenko-rs"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Nick Thomas <me@ur.gs>"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
log = "0.4.0"
|
||||||
|
env_logger = "0.6.1"
|
||||||
|
clap = "2.33"
|
||||||
|
# For local development
|
||||||
|
# irc-bot = { path = "/home/lupine/dev/code.ur.gs/lupine/irc-bot.rs" }
|
||||||
|
|
||||||
|
irc-bot = { git = "https://code.ur.gs/lupine/irc-bot.rs", branch = "for-lysenko" }
|
12
lysenko.yml.example
Normal file
12
lysenko.yml.example
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
nickname: lysenko
|
||||||
|
nick_password: A password here
|
||||||
|
realname: Comrade Trofim Lysenko
|
||||||
|
servers:
|
||||||
|
- host: chat.freenode.net
|
||||||
|
port: 6697
|
||||||
|
tls: true
|
||||||
|
channels: ["#testbot"]
|
||||||
|
admins:
|
||||||
|
- nick: lupine
|
||||||
|
host: unaffiliated/lupine-85/x-7392152
|
57
src/bin/lysenko.rs
Normal file
57
src/bin/lysenko.rs
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
#![forbid(unsafe_code)]
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate log;
|
||||||
|
|
||||||
|
#[macro_use]
|
||||||
|
extern crate clap;
|
||||||
|
|
||||||
|
extern crate env_logger;
|
||||||
|
|
||||||
|
use clap::{App, Arg};
|
||||||
|
use irc_bot::modules;
|
||||||
|
|
||||||
|
arg_enum! {
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum LogLevel {
|
||||||
|
Display,
|
||||||
|
Debug
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn arg<'a, 'b>(name: &'a str, short: &'b str) -> Arg<'a, 'b> {
|
||||||
|
return Arg::with_name(name).long(name).short(short);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
env_logger::init();
|
||||||
|
|
||||||
|
let ll_arg = arg("log-level", "l")
|
||||||
|
.possible_values(&LogLevel::variants())
|
||||||
|
.default_value("Display")
|
||||||
|
.case_insensitive(true);
|
||||||
|
|
||||||
|
let app = App::new("lysenko")
|
||||||
|
.arg(arg("config", "C").default_value("lysenko.yml"))
|
||||||
|
.arg(arg("data-dir", "d").default_value("."))
|
||||||
|
.arg(ll_arg);
|
||||||
|
|
||||||
|
let args = app.get_matches();
|
||||||
|
|
||||||
|
let config_file = args.value_of("config").expect("default missing?");
|
||||||
|
let data_dir = args.value_of("data-dir").expect("default missing?");
|
||||||
|
let log_level = value_t!(args, "log-level", LogLevel).unwrap_or_else(|err| err.exit());
|
||||||
|
|
||||||
|
irc_bot::run(
|
||||||
|
irc_bot::Config::try_from_path(config_file),
|
||||||
|
data_dir,
|
||||||
|
move |err| {
|
||||||
|
match log_level {
|
||||||
|
LogLevel::Display => error!("{}", err),
|
||||||
|
LogLevel::Debug => error!("{:?}", err),
|
||||||
|
}
|
||||||
|
irc_bot::ErrorReaction::Proceed
|
||||||
|
},
|
||||||
|
&[modules::default, modules::test],
|
||||||
|
);
|
||||||
|
}
|
Reference in New Issue
Block a user