initial commit taken from gitlab.lrz.de

This commit is contained in:
privatereese
2018-08-24 18:09:42 +02:00
parent ae54ed4c48
commit fc05486403
28494 changed files with 2159823 additions and 0 deletions

14
node_modules/capture-exit/README.md generated vendored Normal file
View File

@@ -0,0 +1,14 @@
# capture-exit
[![Build status](https://ci.appveyor.com/api/projects/status/8044m918rwic8b9n/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/capture-exit/branch/master)
[![Build Status](https://travis-ci.org/ember-cli/capture-exit.svg?branch=master)](https://travis-ci.org/ember-cli/capture-exit)
Allow cooprative async exit handlers, we unfortunately must hijack
process.exit.
It allows a handler to ensure exit, without that exit handler impeding other
similar handlers
for example, see: [sindresorhus/ora#27](https://github.com/sindresorhus/ora/issues/27)
Differences between `process.on('exit')` and `captureExit.onExit(...)` => https://github.com/ember-cli/capture-exit/issues/12

153
node_modules/capture-exit/index.js generated vendored Normal file
View File

@@ -0,0 +1,153 @@
var RSVP = require('rsvp');
var exit;
var handlers = [];
var lastTime;
var isExiting = false;
process.on('beforeExit', function (code) {
if (handlers.length === 0) { return; }
var own = lastTime = module.exports._flush(lastTime, code)
.finally(function () {
// if an onExit handler has called process.exit, do not disturb
// `lastTime`.
//
// Otherwise, clear `lastTime` so that we know to synchronously call the
// real `process.exit` with the given exit code, when our captured
// `process.exit` is called during a `process.on('exit')` handler
//
// This is impossible to reason about, don't feel bad. Just look at
// test-natural-exit-subprocess-error.js
if (own === lastTime) {
lastTime = undefined;
}
});
});
// This exists only for testing
module.exports._reset = function () {
module.exports.releaseExit();
handlers = [];
lastTime = undefined;
isExiting = false;
firstExitCode = undefined;
}
/*
* To allow cooperative async exit handlers, we unfortunately must hijack
* process.exit.
*
* It allows a handler to ensure exit, without that exit handler impeding other
* similar handlers
*
* for example, see: https://github.com/sindresorhus/ora/issues/27
*
*/
module.exports.releaseExit = function() {
if (exit) {
process.exit = exit;
exit = null;
}
};
var firstExitCode;
module.exports.captureExit = function() {
if (exit) {
// already captured, no need to do more work
return;
}
exit = process.exit;
process.exit = function(code) {
if (handlers.length === 0 && lastTime === undefined) {
// synchronously exit.
//
// We do this brecause either
//
// 1. The process exited due to a call to `process.exit` but we have no
// async work to do because no handlers had been attached. It
// doesn't really matter whether we take this branch or not in this
// case.
//
// 2. The process exited naturally. We did our async work during
// `beforeExit` and are in this function because someone else has
// called `process.exit` during an `on('exit')` hook. The only way
// for us to preserve the exit code in this case is to exit
// synchronously.
//
return exit.call(process, code);
}
if (firstExitCode === undefined) {
firstExitCode = code;
}
var own = lastTime = module.exports._flush(lastTime, firstExitCode)
.then(function() {
// if another chain has started, let it exit
if (own !== lastTime) { return; }
exit.call(process, firstExitCode);
})
.catch(function(error) {
// if another chain has started, let it exit
if (own !== lastTime) {
throw error;
}
console.error(error);
exit.call(process, 1);
});
};
};
module.exports._handlers = handlers;
module.exports._flush = function(lastTime, code) {
isExiting = true;
var work = handlers.splice(0, handlers.length);
return RSVP.Promise.resolve(lastTime).
then(function() {
var firstRejected;
return RSVP.allSettled(work.map(function(handler) {
return RSVP.resolve(handler.call(null, code)).catch(function(e) {
if (!firstRejected) {
firstRejected = e;
}
throw e;
});
})).then(function(results) {
if (firstRejected) {
throw firstRejected;
}
});
});
};
module.exports.onExit = function(cb) {
if (!exit) {
throw new Error('Cannot install handler when exit is not captured. Call `captureExit()` first');
}
if (isExiting) {
throw new Error('Cannot install handler while `onExit` handlers are running.');
}
var index = handlers.indexOf(cb);
if (index > -1) { return; }
handlers.push(cb);
};
module.exports.offExit = function(cb) {
var index = handlers.indexOf(cb);
if (index < 0) { return; }
handlers.splice(index, 1);
};
module.exports.exit = function() {
exit.apply(process, arguments);
};
module.exports.listenerCount = function() {
return handlers.length;
};

99
node_modules/capture-exit/package.json generated vendored Normal file
View File

@@ -0,0 +1,99 @@
{
"_args": [
[
"capture-exit@^1.2.0",
"/home/bernhard/freifunk-app/node_modules/sane"
]
],
"_from": "capture-exit@>=1.2.0 <2.0.0",
"_id": "capture-exit@1.2.0",
"_inCache": true,
"_installable": true,
"_location": "/capture-exit",
"_nodeVersion": "7.4.0",
"_npmOperationalInternal": {
"host": "packages-12-west.internal.npmjs.com",
"tmp": "tmp/capture-exit-1.2.0.tgz_1484606943980_0.9743934394791722"
},
"_npmUser": {
"email": "stefan.penner+ember-cli@gmail.com",
"name": "ember-cli"
},
"_npmVersion": "4.0.5",
"_phantomChildren": {},
"_requested": {
"name": "capture-exit",
"raw": "capture-exit@^1.2.0",
"rawSpec": "^1.2.0",
"scope": null,
"spec": ">=1.2.0 <2.0.0",
"type": "range"
},
"_requiredBy": [
"/sane"
],
"_resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz",
"_shasum": "1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f",
"_shrinkwrap": null,
"_spec": "capture-exit@^1.2.0",
"_where": "/home/bernhard/freifunk-app/node_modules/sane",
"author": {
"email": "stefan.penner@gmail.com",
"name": "Stefan Penner"
},
"bugs": {
"url": "https://github.com/stefanpenner/capture-exit/issues"
},
"dependencies": {
"rsvp": "^3.3.3"
},
"description": "safely cleanup in signal handlers",
"devDependencies": {
"chai": "^3.5.0",
"execa": "0.4.0",
"mocha": "^3.1.2",
"ora": "^0.3.0"
},
"directories": {},
"dist": {
"shasum": "1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f",
"tarball": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz"
},
"files": [
"index.js"
],
"gitHead": "063a5b87271caf34f0ba367ebbbb7354a24f14a1",
"homepage": "https://github.com/stefanpenner/capture-exit#readme",
"license": "ISC",
"main": "index.js",
"maintainers": [
{
"name": "ember-cli",
"email": "stefan.penner+ember-cli@gmail.com"
},
{
"name": "hjdivad",
"email": "npm@hjdivad.com"
},
{
"name": "rwjblue",
"email": "me@rwjblue.com"
},
{
"name": "stefanpenner",
"email": "stefan.penner@gmail.com"
}
],
"name": "capture-exit",
"optionalDependencies": {},
"readme": "ERROR: No README data found!",
"repository": {
"type": "git",
"url": "git+https://github.com/stefanpenner/capture-exit.git"
},
"scripts": {
"test": "mocha test",
"test:debug": "mocha debug test"
},
"version": "1.2.0"
}