From 0c1e6e18373fde9407ccf287757f1d221469e6d1 Mon Sep 17 00:00:00 2001 From: Justin Worthe Date: Tue, 22 Aug 2017 21:38:36 +0200 Subject: master: Added git hook for running cargo before commits --- src/bin/commit-msg.rs | 13 ++++--------- src/bin/pre-commit.rs | 24 +++++++++++++++--------- src/bin/pre-push.rs | 13 ++++--------- src/bin/prepare-commit-msg.rs | 3 ++- src/lib.rs | 1 + 5 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/bin/commit-msg.rs b/src/bin/commit-msg.rs index d880dc0..e34586b 100644 --- a/src/bin/commit-msg.rs +++ b/src/bin/commit-msg.rs @@ -1,14 +1,9 @@ +extern crate rust_git_hooks; +use rust_git_hooks::*; + use std::env; use std::io::{stdin, BufRead}; fn main() { - let args: Vec<_> = env::args().skip(1).collect(); - println!("commit-msg called with {:?}", args); - - println!("BEGIN STDIN for commit-msg"); - let stdin = stdin(); - for line in stdin.lock().lines() { - println!("{:?}", line); - } - println!("END STDIN"); + log(); } diff --git a/src/bin/pre-commit.rs b/src/bin/pre-commit.rs index 7b52443..361dd9c 100644 --- a/src/bin/pre-commit.rs +++ b/src/bin/pre-commit.rs @@ -1,14 +1,20 @@ +extern crate rust_git_hooks; +use rust_git_hooks::*; + use std::env; use std::io::{stdin, BufRead}; +use std::process; +use std::process::{Command, Stdio}; fn main() { - let args: Vec<_> = env::args().skip(1).collect(); - println!("pre-commit called with {:?}", args); - - println!("BEGIN STDIN for pre-commit"); - let stdin = stdin(); - for line in stdin.lock().lines() { - println!("{:?}", line); - } - println!("END STDIN"); + log(); + + let command = Command::new("cargo") + .arg("test") + .stdout(Stdio::inherit()) + .stderr(Stdio::inherit()) + .output() + .expect("failed to execute process"); + + process::exit(command.status.code().unwrap_or(0)); } diff --git a/src/bin/pre-push.rs b/src/bin/pre-push.rs index 41f3bbb..e34586b 100644 --- a/src/bin/pre-push.rs +++ b/src/bin/pre-push.rs @@ -1,14 +1,9 @@ +extern crate rust_git_hooks; +use rust_git_hooks::*; + use std::env; use std::io::{stdin, BufRead}; fn main() { - let args: Vec<_> = env::args().skip(1).collect(); - println!("pre-push called with {:?}", args); - - println!("BEGIN STDIN for pre-push"); - let stdin = stdin(); - for line in stdin.lock().lines() { - println!("{:?}", line); - } - println!("END STDIN"); + log(); } diff --git a/src/bin/prepare-commit-msg.rs b/src/bin/prepare-commit-msg.rs index 1a34fc2..64ddd65 100644 --- a/src/bin/prepare-commit-msg.rs +++ b/src/bin/prepare-commit-msg.rs @@ -1,6 +1,6 @@ extern crate rust_git_hooks; - use rust_git_hooks::*; + use std::fs::File; use std::io::Write; use std::io::Read; @@ -11,6 +11,7 @@ fn main() { log(); let commit_filename = env::args().nth(1); + let commit_source = env::args().nth(2); let current_branch = get_current_branch(); diff --git a/src/lib.rs b/src/lib.rs index fff1c85..00e02f7 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -29,3 +29,4 @@ pub fn get_current_branch() -> Result { None => Err(git2::Error::from_str("No branch name found")) } } + -- cgit v1.2.3