Add basic gitlog
This commit is contained in:
27
src/main.rs
27
src/main.rs
@@ -1,22 +1,17 @@
|
||||
use git2::Repository;
|
||||
use clap::Parser;
|
||||
|
||||
#[derive(Parser, Debug)]
|
||||
#[command(author, version, about, long_about = None)]
|
||||
struct Cli {
|
||||
#[arg(short, long, required = true)]
|
||||
path: String,
|
||||
}
|
||||
|
||||
fn main() -> eyre::Result<()> {
|
||||
let repo = Repository::open(".git")?;
|
||||
let mut revwalk = repo.revwalk()?;
|
||||
revwalk.set_sorting(git2::Sort::TIME)?;
|
||||
let args = Cli::parse();
|
||||
|
||||
let revspec = repo.revparse("HEAD")?;
|
||||
let from = revspec.from().ok_or(eyre::anyhow!("could not get HEAD"))?;
|
||||
revwalk.push(from.id())?;
|
||||
|
||||
for rev in revwalk.enumerate() {
|
||||
let oid = rev.1?;
|
||||
let commit = repo.find_commit(oid)?;
|
||||
let message = commit
|
||||
.message()
|
||||
.ok_or(eyre::anyhow!("could not find message from commit"))?;
|
||||
println!("rev: {}", message)
|
||||
}
|
||||
let log = gitlog_core::get_git_log(args.path)?;
|
||||
println!("{}", log);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user