From 758e4402da63eb5cac1c6a6331fb0daef13a933c Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 24 Sep 2015 17:00:27 -0700 Subject: [PATCH] Add git hooks --- package.json | 7 +++++-- scripts/hooks/post-checkout | 2 ++ scripts/link-hooks.js | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 scripts/hooks/post-checkout create mode 100644 scripts/link-hooks.js diff --git a/package.json b/package.json index ba8edd188e4..16eff345bd9 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "istanbul": "latest", "mocha-fivemat-progress-reporter": "latest", "tslint": "latest", - "tsd": "latest" + "tsd": "latest", + "npm": "^2" }, "scripts": { "pretest": "jake tests", @@ -44,7 +45,9 @@ "build": "npm run build:compiler && npm run build:tests", "build:compiler": "jake local", "build:tests": "jake tests", - "clean": "jake clean" + "clean": "jake clean", + "jake": "jake", + "postinstall": "node scripts/link-hooks.js" }, "browser": { "buffer": false, diff --git a/scripts/hooks/post-checkout b/scripts/hooks/post-checkout new file mode 100644 index 00000000000..10c13f6bbc3 --- /dev/null +++ b/scripts/hooks/post-checkout @@ -0,0 +1,2 @@ +#!/bin/sh +echo "var npm = require("npm"); npm.load(function (err) {if (err) { throw err; } npm.commands.run(['jake', 'generate-diagnostics']); )" | node \ No newline at end of file diff --git a/scripts/link-hooks.js b/scripts/link-hooks.js new file mode 100644 index 00000000000..33b5d4fd94f --- /dev/null +++ b/scripts/link-hooks.js @@ -0,0 +1,20 @@ +var fs = require("fs"); +var path = require("path"); + +var hooks = [ + "post-checkout" +]; + +hooks.forEach(function (hook) { + var hookInSourceControl = path.resolve(__dirname, "hooks", hook); + + if (fs.existsSync(hookInSourceControl)) { + var hookInHiddenDirectory = path.resolve(__dirname, "..", ".git", "hooks", hook); + + if (fs.existsSync(hookInHiddenDirectory)) { + fs.unlinkSync(hookInHiddenDirectory); + } + + fs.linkSync(hookInSourceControl, hookInHiddenDirectory); + } +}); \ No newline at end of file