Skip to content

Commit 32b4ab0

Browse files
committed
Merge branch 'develop'
2 parents f3fce25 + ab84d03 commit 32b4ab0

File tree

19 files changed

+1002
-949
lines changed

19 files changed

+1002
-949
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
# Rust
12
/target
23
Cargo.lock
4+
5+
# Elebox
36
*.db
47
*.csv
58
*.tsv
9+
elebox_export*

elebox-cli/src/category_cmd.rs

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use clap::{Args, Subcommand};
2+
use elebox_core::Manager;
23

34
#[derive(Debug, Args)]
45
pub struct CategoryCommand {
@@ -47,8 +48,8 @@ struct ExportCategoryArgs {
4748
path: String,
4849
}
4950

50-
pub fn category_cmd(db: &dyn elebox_core::Database, cmd: &CategoryCommand) {
51-
let manager = elebox_core::CategoryManager::new(db);
51+
pub fn category_cmd(path: &str, cmd: &CategoryCommand) {
52+
let manager = elebox_core::CategoryManager::new(path);
5253

5354
match &cmd.command {
5455
Some(CategorySubCommand::New(args)) => {
@@ -57,30 +58,23 @@ pub fn category_cmd(db: &dyn elebox_core::Database, cmd: &CategoryCommand) {
5758
args.parent_cat.as_deref(),
5859
None, // TODO
5960
)) {
60-
println!("{err}");
61+
println!("ERR: {err}");
6162
};
6263
}
6364
Some(CategorySubCommand::Delete(args)) => {
6465
if let Err(err) = manager.delete(&args.name) {
65-
print!("{err}");
66+
println!("ERR: {err}");
6667
};
6768
}
68-
Some(CategorySubCommand::Update(args)) => {
69-
// TODO
70-
// if let Err(err) = manager.update(
71-
// &args.old_name,
72-
// args.new_name.as_deref(),
73-
// args.parent_cat.as_deref(),
74-
// ) {
75-
// println!("{err}");
76-
// };
69+
Some(CategorySubCommand::Update(_args)) => {
70+
todo!();
7771
}
78-
Some(CategorySubCommand::Export(args)) => {
79-
let _ = manager.export(&args.path);
72+
Some(CategorySubCommand::Export(_args)) => {
73+
todo!();
8074
}
8175
None => {
8276
println!("List part category");
83-
let pts = manager.list();
77+
let pts = manager.list().unwrap();
8478
for pt in pts {
8579
println!("{} {:?}", pt.name, pt.parent);
8680
}

elebox-cli/src/main.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use std::sync::atomic;
1+
22

33
use clap::{Args, Parser, Subcommand};
4-
use elebox_core::{self, Database};
4+
use elebox_core::{self};
55

66
mod category_cmd;
77
mod part_cmd;
@@ -46,16 +46,13 @@ enum EntityType {
4646
fn main() {
4747
let cli = Cli::parse();
4848

49-
println!("{}", cli.db_path);
50-
let db = elebox_core::JammDatabase::new(&cli.db_path);
49+
println!("Database: {}", cli.db_path);
5150

5251
match &cli.entity_type {
53-
EntityType::Init => db.init(),
54-
EntityType::Part(cmd) => part_cmd(&db, cmd),
55-
EntityType::Category(cmd) => category_cmd(&db, cmd),
56-
EntityType::Export(args) => elebox_core::export(&db, &args.path),
57-
EntityType::Import(args) => {
58-
let _ = elebox_core::import(&args.path);
59-
}
52+
EntityType::Init => elebox_core::init(&cli.db_path),
53+
EntityType::Part(cmd) => part_cmd(&cli.db_path, cmd),
54+
EntityType::Category(cmd) => category_cmd(&cli.db_path, cmd),
55+
EntityType::Export(_args) => todo!(),
56+
EntityType::Import(_args) => todo!(),
6057
};
6158
}

elebox-cli/src/part_cmd.rs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use clap::{Args, Subcommand};
2+
use elebox_core::{Manager, Transferable};
23

34
#[derive(Debug, Args)]
45
pub struct PartCommand {
@@ -68,12 +69,13 @@ struct DeletePartArgs {
6869

6970
#[derive(Debug, Args)]
7071
struct CsvPartArgs {
71-
#[arg(default_value = "elebox_export_parts.tsv")]
72+
#[arg(default_value = "elebox_export_parts.yaml")]
7273
path: String,
7374
}
7475

75-
pub fn part_cmd(db: &dyn elebox_core::Database, cmd: &PartCommand) {
76-
let manager = elebox_core::PartManager::new(db);
76+
// pub fn part_cmd(db: &dyn elebox_core::Database, cmd: &PartCommand) {
77+
pub fn part_cmd(path: &str, cmd: &PartCommand) {
78+
let manager = elebox_core::PartManager::new(path);
7779

7880
match &cmd.command {
7981
Some(sub_cmd) => match sub_cmd {
@@ -90,41 +92,35 @@ pub fn part_cmd(db: &dyn elebox_core::Database, cmd: &PartCommand) {
9092
}
9193
PartSubCommand::Delete(args) => {
9294
if let Err(err) = manager.delete(&args.name) {
93-
println!("{err}");
95+
println!("ERR: {err}");
9496
}
9597
}
96-
PartSubCommand::Update(args) => {
97-
// TODO
98-
// if let Err(err) = manager.update(
99-
// &args.old_name,
100-
// args.new_name.as_deref(),
101-
// args.new_quantity,
102-
// args.new_part_cat.as_deref(),
103-
// ) {
104-
// println!("{err}");
105-
// }
98+
PartSubCommand::Update(_args) => {
99+
todo!();
106100
}
107101
PartSubCommand::Add(args) => {
108102
if let Err(err) = manager.update_part_quantity(&args.name, args.quantity as i16) {
109-
println!("{err}");
103+
println!("ERR: {err}");
110104
}
111105
}
112106
PartSubCommand::Use(args) => {
113107
let q = args.quantity as i16 * -1;
114108
if let Err(err) = manager.update_part_quantity(&args.name, q) {
115-
println!("{err}");
109+
println!("ERR: {err}");
116110
}
117111
}
118-
PartSubCommand::Export(args) => {
119-
let _ = manager.export(&args.path);
120-
}
121-
PartSubCommand::Import(args) => {
122-
let _ = manager.import(&args.path);
123-
}
112+
PartSubCommand::Export(args) => match manager.export(&args.path) {
113+
Ok(_) => println!("Export success: {}", args.path),
114+
Err(_) => println!("Export error: {}", args.path),
115+
},
116+
PartSubCommand::Import(args) => match manager.import(&args.path) {
117+
Ok(_) => println!("Import success: {}", args.path),
118+
Err(_) => println!("Import error: {}", args.path),
119+
},
124120
},
125121
None => {
126122
println!("List part");
127-
let parts = manager.list();
123+
let parts = manager.list().unwrap();
128124
for part in parts {
129125
println!("{} {} {}", part.name, part.quantity, part.category);
130126
}

elebox-core/Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ edition = "2021"
1111
jammdb = "0.11.0"
1212
serde = { version = "1.0", features = ["derive"] }
1313
rmp-serde = "1.1.2"
14-
uuid = { version = "1.5.0", features = ["v7", "fast-rng", "macro-diagnostics"] }
14+
uuid = { version = "1.5.0", features = [
15+
"v4",
16+
"v7",
17+
"fast-rng",
18+
"macro-diagnostics",
19+
] }
1520
csv = "1.3.0"
1621
serde_yaml = "0.9.34"
1722

0 commit comments

Comments
 (0)