Compare commits

..

No commits in common. "84837336785d1c932227138c014ad6a81c73330e" and "d29345292901494ded1ff117a2c93cf711b578a2" have entirely different histories.

4 changed files with 3 additions and 81 deletions

View file

@ -5,7 +5,6 @@ edition = "2021"
[dependencies]
pdf-extract = "0.9.0"
walkdir = "2.5.0"
colored = "3.0.0"
clap = "4.5.36"
csv = "1.3.1"

View file

@ -60,13 +60,6 @@ impl Arguments {
.help("The path where your CSV files are")
.action(ArgAction::Set)
.required(true),
)
.arg(
Arg::new("file_out")
.id("file_out")
.help("The path where the master CSV is saved")
.action(ArgAction::Set)
.required(true),
),
)
.get_matches();
@ -100,11 +93,8 @@ impl Arguments {
.get_one::<String>("directory")
.unwrap()
.to_owned();
file_output = package_matches
.get_one::<String>("file_out")
.unwrap()
.to_owned();
file_input = String::new();
file_output = String::new();
}
_ => unreachable!(),
}

View file

@ -46,11 +46,7 @@ fn convert(args: &Arguments) -> Result<()> {
Ok(())
}
fn package(args: &Arguments) -> Result<()> {
// Creating a Packager
let packager = Packager::new(args.csv_directory.clone(), args.file_output.clone());
// Starting it
packager.start()?;
//
// Ok!!
Ok(())

View file

@ -1,9 +1,5 @@
// Libraries
use std::fs::File;
use std::io::{self, Result};
use csv::{self, StringRecord};
use walkdir::WalkDir;
use std::io::Result;
// Structures
pub struct Packager {
@ -22,66 +18,7 @@ impl Packager {
}
// Functions
fn read_csv(&self, path: &str) -> Result<Vec<StringRecord>> {
// Opening the File & Reading
let file = File::open(path)?;
let mut rdr = csv::Reader::from_reader(file);
// Creating a list of string records
let mut result: Vec<StringRecord> = Vec::new();
// Iterate through records
for record in rdr.records() {
result.push(record?);
}
// Ok!
Ok(result)
}
fn save(&self, records: Vec<StringRecord>) -> Result<()> {
// Writing to the path we want
let mut writer = csv::Writer::from_path(&self.file_out)?;
// Creating the Header
writer.write_record(&["Date", "Description", "Amount"])?;
// Adding all Records
for record in &records {
writer.write_record(record)?;
}
// Flushing!!
writer.flush()?;
// Ok!!
Ok(())
}
pub fn start(&self) -> Result<()> {
// Holding all Records
let mut records: Vec<StringRecord> = Vec::new();
// Using WalkDir to go through the Directory
for entry in WalkDir::new(&self.directory) {
// Reference the Path
let entry = entry?;
let path = entry.path();
// Is it a file?
if !path.is_file() {
continue;
}
// Reading the CSV from the Path
let file = self.read_csv(path.to_str().unwrap())?;
// Adding it to the record list
records.extend(file);
}
// Saving the Records
self.save(records)?;
// Ok!!
Ok(())
}