Skip to content

Latest commit

 

History

History
54 lines (37 loc) · 1.39 KB

README.md

File metadata and controls

54 lines (37 loc) · 1.39 KB

Git Scanner

Docs Crates.io Crates.io

based on Polyglot Code Scanner with changes:

  • keep git logic only.
  • publish to crates.io

todo:

  • add git clone.
  • add history.
  • merge cmd from coco.

examples:

use git_scanner::flare::FlareTreeNode;
use git_scanner::git::GitCalculator;
use git_scanner::git_logger::GitLogConfig;
use git_scanner::{file_walker, IndicatorCalculator};
use std::path::PathBuf;

pub fn by_path(root: PathBuf) -> FlareTreeNode {
    let mut tics: Vec<Box<dyn IndicatorCalculator>> = vec![];
    let calculator = Box::new(GitCalculator::new(
        GitLogConfig::default().include_merges(true).since_years(3),
        true,
    ));

    tics.push(calculator);

    let mut tree = file_walker::walk_directory(&root, &mut tics).unwrap();

    for tic in tics {
        if let Some(metadata) = tic.metadata().unwrap() {
            tree.add_data(tic.name() + "_meta", metadata);
        }
    }

    return tree;
}

Copyright 2019 Kornelis Sietsma

Copyright © 2021 Inherd Group

Licensed under the Apache License, Version 2.0 - see LICENSE.txt for details