Something went wrong. Try again.
npx ccusage
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839use crate::{ LoadedEntry, PricingMap, Result, cli::SharedArgs, collect_files_with_extension, debug_log, parse_tz, read_files_parallel,};
use super::{parser, paths};
pub fn load_entries(shared: &SharedArgs, pricing: &PricingMap) -> Result<Vec<LoadedEntry>> { crate::progress::track_usage_load(crate::progress::UsageLoadAgent("Amp"), shared.json, || { load_entries_inner(shared, pricing) })}
fn load_entries_inner(shared: &SharedArgs, pricing: &PricingMap) -> Result<Vec<LoadedEntry>> { let mut entries = Vec::new(); let tz = parse_tz(shared.timezone.as_deref()); for path in paths::paths()? { let threads_dir = path.join("threads"); let mut files = Vec::new(); collect_files_with_extension(&threads_dir, "json", &mut files); let per_file = read_files_parallel(&files, shared.single_thread, |file| { parser::read_thread_file(file, tz.as_ref(), shared.mode, Some(pricing)).unwrap_or_else( |error| { debug_log( shared, format!("Failed to read Amp thread file {}: {error}", file.display()), ); Vec::new() }, ) }); for file_entries in per_file { entries.extend(file_entries); } } entries.sort_by_key(|entry| entry.timestamp); Ok(entries)}