aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs
index b59669d..c09d045 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,6 @@
+#[macro_use]
+extern crate log;
+
use std::collections::HashMap;
use std::fs;
use std::io;
@@ -32,6 +35,7 @@ struct Opt {
enum Cmd {
ParseKanjidic,
ParseJlptVocab,
+ IndexJmdict,
New {
#[structopt(default_value = "10")]
count: usize,
@@ -47,6 +51,11 @@ enum Cmd {
#[async_std::main]
async fn main() {
+ if std::env::var("RUST_LOG").is_err() {
+ std::env::set_var("RUST_LOG", "datagengo=info")
+ }
+ pretty_env_logger::init();
+
let opt = Opt::from_args();
match opt.cmd {
@@ -62,6 +71,19 @@ async fn main() {
Charset::from_iter(kanji_levels.iter().map(|(_, c)| c.chars()).flatten());
parse_jlpt_vocab(&all_kanji).expect("error");
}
+ Cmd::IndexJmdict => {
+ let jmdict = fs::read_to_string("data/JMdict_e.xml").expect("read_jmdict");
+ let jmdict = roxmltree::Document::parse_with_options(
+ &jmdict,
+ roxmltree::ParsingOptions {
+ allow_dtd: true,
+ ..Default::default()
+ },
+ )
+ .expect("parse_jmdict");
+ let jmdict_idx = index_jmdict(&jmdict);
+ fs::write("data/jmdict_idx.json", serde_json::to_string_pretty(&jmdict_idx).expect("to_json").as_bytes()).expect("write");
+ }
Cmd::New { truncate, count } => {
let kanji_levels = read_kanji_levels().expect("read_kanji_levels");
let all_kanji = Charset::new(
@@ -119,16 +141,7 @@ async fn main() {
save_batches(batches).expect("save_batches");
}
Cmd::Format => {
- let jmdict = fs::read_to_string("data/JMdict_e.xml").expect("read_jmdict");
- let jmdict = roxmltree::Document::parse_with_options(
- &jmdict,
- roxmltree::ParsingOptions {
- allow_dtd: true,
- ..Default::default()
- },
- )
- .expect("parse_jmdict");
- let jmdict_idx = index_jmdict(&jmdict);
+ let jmdict_idx = read_jmdict_idx().expect("read jmdict_idx.json");
let batches = read_batches().expect("read/parse");