[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/nodegit/nodegit/v0.0.72/example/apps/git_profanity_check.js [Back]  [Original]

#!/usr/bin/env node

// Copyright 2011, Tim Branyen @tbranyen 
// Dual licensed under the MIT and GPL licenses.
// Script to detect cursewords in commit messages and provide the
// offending commit sha's.
// vim: ft=javascript
var git = require( 'nodegit' );

var curses = [ 'add', 'swears', 'here' ]
  , path = './.git'
  , branch = 'master'
  , reCurse = new RegExp('\\b(?:' + curses.join('|') + ')\\b', 'gi');


// Set git path
if ( process.argv.length < 3 ) {
  console.log( 'No path passed as argument, defaulting to ./.git' );
}
else {
  path = process.argv[2];

  // Set repo branch
  if ( process.argv.length < 4 ) {
    console.log( 'No branch passed as argument, defaulting to master' );
  }
  else {
    branch = process.argv[3];
  }
}

// Open repository
git.repo( path, function( err, repo ) {
  if ( err ) {
    throw new Error( err );
  }

  // Open branch
  repo.branch( branch, function( err, branch ) { 
    if ( err ) {
      throw new Error( err );
    }

    // Iterate history
    var history = branch.history();
    history.on( 'commit', function( idx, commit ) {
      // Check commit messages first
      if ( reCurse.test(commit.message) ) {
        console.log( 'Curse detected in commit', commit.sha, 'message' ); 
        return;
      }
    });
  });
});

Web Proxy Viewer  |  New URL  |  Original Page