You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

node-hooks

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-hooks - npm Package Compare versions

Comparing version
0.0.9
to
0.0.10
+95
-97
commands/run.js

@@ -8,132 +8,130 @@ var fs = require("fs");

var main = function(args){
var main = function(args) {
var hook = args[0];
var hook = args[0];
var hooks = require("../lib/possible-hooks");
var hooks = require("../lib/possible-hooks");
if(hooks.indexOf(hook)==-1){
console.error(hook.blue+" is not a valid git-hook".red);
process.exit(1);
}
if (hooks.indexOf(hook) == -1) {
console.error(hook.blue + " is not a valid git-hook".red);
process.exit(1);
}
fs.readFile("hooks.json", function(err, data){
if(err){
console.error("ERROR READING `hook.json`".red);
console.log(">> "+"Has hooks been merged into this branch?".blue);
process.exit(0);
}
else{
var options;
fs.readFile("hooks.json", function(err, data) {
try{
options = JSON.parse(data);
}
catch(err){
console.error("ERROR PARSING `hook.json`".red, err);
process.exit(1);
}
if (err) {
console.error("ERROR READING `hook.json`".red);
console.log(">> " + "Has hooks been merged into this branch?".blue);
process.exit(0);
} else {
var options;
if(options[hook]!=undefined){
queue(args, Object.keys(options[hook]), options[hook]);
}
}
try {
options = JSON.parse(data);
} catch (err) {
console.error("ERROR PARSING `hook.json`".red, err);
process.exit(1);
}
});
if (options[hook] != undefined) {
queue(args, Object.keys(options[hook]), options[hook]);
}
}
});
}
var queue = function(args, keys, commands){
var queue = function(args, keys, commands) {
var key = keys[0];
var key = keys[0];
open(args, key, commands[key], function(err, exit_code){
if(err){
console.error("ERROR ENACTING `", key, "`", err);
process.exit(1);
}
else if(exit_code!=0){
process.exit(exit_code);
}
open(args, key, commands[key], function(err, exit_code) {
if (err) {
console.error("ERROR ENACTING `", key, "`", err);
process.exit(1);
} else if (exit_code != 0) {
process.exit(exit_code);
}
keys = keys.slice(1);
keys = keys.slice(1);
if(keys.length==0){
process.exit(0);
}
else{
queue(keys, commands);
}
});
if (keys.length == 0) {
process.exit(0);
} else {
queue(args, keys, commands);
}
});
}
var open = function(args, name, path, callback){
var folder = "node_modules/"+name;
fs.readFile(folder+"/package.json", function(err, data){
if(err){
fs.readFile(path+"/package.json", function(err, data){
if(err){
callback("CANNOT FIND `", name, "`");
}
else{
prep(args, data, path, callback);
}
});
}
else{
prep(args, data, folder, callback);
}
});
var open = function(args, name, path, callback) {
var folder = "node_modules/" + name;
fs.readFile(folder + "/package.json", function(err, data) {
if (err) {
fs.readFile(path + "/package.json", function(err, data) {
if (err) {
callback("CANNOT FIND `", name, "`");
} else {
prep(args, data, path, callback);
}
});
} else {
prep(args, data, folder, callback);
}
});
}
var prep = function(args, data, folder, callback){
var options = undefined;
var prep = function(args, data, folder, callback) {
var options = undefined;
try{
options = JSON.parse(data);
}
catch(err){
callback(err);
}
try {
options = JSON.parse(data);
} catch (err) {
callback(err);
}
if(options){
var file = options["main"] || "index.js";
var type = options["hook-module"]!=undefined ? options["hook-module"]["script-type"] || "node" : "node";
if (options) {
var file = options["main"] || "index.js";
var type = options["hook-module"] != undefined ? options["hook-module"]["script-type"] || "node" : "node";
enact(args, type, folder+"/"+file, callback);
}
enact(args, type, folder + "/" + file, callback);
}
}
var enact = function(args, type, file, callback){
var enact = function(args, type, file, callback) {
var command = type == "shell" ? file : type;
var command = type == "shell" ? file : type;
var commandArgs = [];
if(command!=file){
commandArgs.push(file);
}
var commandArgs = [];
if (command != file) {
commandArgs.push(file);
}
commandArgs = commandArgs.concat(args);
commandArgs = commandArgs.concat(args);
var hook = spawn(command, commandArgs);
hook.stderr.on("data", function(data){
process.stderr.write(data);
});
var hook = spawn(command, commandArgs);
hook.stdout.on("data", function(data){
process.stdout.write(data);
});
hook.stdin.on("data", function(data) {
process.stdin.write(data);
console.log("woot");
});
hook.on("error", function(err){
console.error("HOOKS:", err.message);
})
hook.stderr.on("data", function(data) {
process.stderr.write(data);
});
hook.on("close", function(code){
callback(undefined, code);
});
hook.stdout.on("data", function(data) {
process.stdout.write(data);
});
hook.on("error", function(err) {
console.error("HOOKS:", err.message);
})
hook.on("close", function(code) {
callback(undefined, code);
});
}
module.exports = main;

@@ -1,1 +0,5 @@

{}
{
"pre-commit": {
"beautify.hks": "0.0.1"
}
}

@@ -5,11 +5,19 @@ {

"valid-for": [
"post-merge",
"post-checkout"
],
"sources": {
"npm": "pull-checkout-merge-command.hook",
"github": "https://github.com/mcwhittemore/pull-checkout-merge-command.hook/tarball/master"
},
"author": "Matthew Chase Whittemore <mcwhittemore@gmail.com>"
"post-merge",
"post-checkout"
],
"sources": {
"npm": "pull-checkout-merge-command.hook",
"github": "https://github.com/mcwhittemore/pull-checkout-merge-command.hook/tarball/master"
},
"author": "Matthew Chase Whittemore <mcwhittemore@gmail.com>"
},
"beautify.hks": {
"desc": "Beautify your javascript with each commit",
"valid-for": ["pre-commit"],
"sources": {
"npm": "beautify.hks"
},
"author": "Matthew Chase Whittemore <mcwhittemore@gmail.com>"
}
}
}
{
"name": "node-hooks",
"version": "0.0.9",
"version": "0.0.10",
"preferGlobal": true,

@@ -16,3 +16,4 @@ "description": "An NPM for git hooks.",

"mocha": "~1.12.0",
"should": "1.2.2"
"should": "1.2.2",
"beautify.hks": "0.0.1"
},

@@ -19,0 +20,0 @@ "scripts": {

@@ -5,2 +5,4 @@ # Hooks

![nook-hooks download history](https://nodei.co/npm-dl/node-hooks.png)
## Terms

@@ -136,1 +138,5 @@

* Bug fix concerning adding npm data to the hooks.json file
### 0.0.10
* Bug fix concerning multiple hook-modules running from the same hook