update socials section
This commit is contained in:
		
							
								
								
									
										61
									
								
								node_modules/pidtree/lib/bin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								node_modules/pidtree/lib/bin.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var spawn = require('child_process').spawn; | ||||
|  | ||||
| function stripStderr(stderr) { | ||||
|   if (!stderr) return; | ||||
|   stderr = stderr.trim(); | ||||
|   // Strip bogus screen size error. | ||||
|   // See https://github.com/microsoft/vscode/issues/98590 | ||||
|   var regex = /your \d+x\d+ screen size is bogus\. expect trouble/gi; | ||||
|   stderr = stderr.replace(regex, ''); | ||||
|  | ||||
|   return stderr.trim(); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Spawn a binary and read its stdout. | ||||
|  * @param  {String} cmd The name of the binary to spawn. | ||||
|  * @param  {String[]} args The arguments for the binary. | ||||
|  * @param  {Object} [options] Optional option for the spawn function. | ||||
|  * @param  {Function} done(err, stdout) | ||||
|  */ | ||||
| function run(cmd, args, options, done) { | ||||
|   if (typeof options === 'function') { | ||||
|     done = options; | ||||
|     options = undefined; | ||||
|   } | ||||
|  | ||||
|   var executed = false; | ||||
|   var ch = spawn(cmd, args, options); | ||||
|   var stdout = ''; | ||||
|   var stderr = ''; | ||||
|  | ||||
|   ch.stdout.on('data', function(d) { | ||||
|     stdout += d.toString(); | ||||
|   }); | ||||
|  | ||||
|   ch.stderr.on('data', function(d) { | ||||
|     stderr += d.toString(); | ||||
|   }); | ||||
|  | ||||
|   ch.on('error', function(err) { | ||||
|     if (executed) return; | ||||
|     executed = true; | ||||
|     done(new Error(err)); | ||||
|   }); | ||||
|  | ||||
|   ch.on('close', function(code) { | ||||
|     if (executed) return; | ||||
|     executed = true; | ||||
|  | ||||
|     stderr = stripStderr(stderr); | ||||
|     if (stderr) { | ||||
|       return done(new Error(stderr)); | ||||
|     } | ||||
|  | ||||
|     done(null, stdout, code); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = run; | ||||
							
								
								
									
										45
									
								
								node_modules/pidtree/lib/get.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								node_modules/pidtree/lib/get.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var os = require('os'); | ||||
|  | ||||
| var platformToMethod = { | ||||
|   darwin: 'ps', | ||||
|   sunos: 'ps', | ||||
|   freebsd: 'ps', | ||||
|   netbsd: 'ps', | ||||
|   win: 'wmic', | ||||
|   linux: 'ps', | ||||
|   aix: 'ps', | ||||
| }; | ||||
|  | ||||
| var methodToRequireFn = { | ||||
|   ps: () => require("./ps"), | ||||
|   wmic: () => require("./wmic") | ||||
| }; | ||||
|  | ||||
| var platform = os.platform(); | ||||
| if (platform.startsWith('win')) { | ||||
|   platform = 'win'; | ||||
| } | ||||
|  | ||||
| var method = platformToMethod[platform]; | ||||
|  | ||||
| /** | ||||
|  * Gets the list of all the pids of the system. | ||||
|  * @param  {Function} callback Called when the list is ready. | ||||
|  */ | ||||
| function get(callback) { | ||||
|   if (method === undefined) { | ||||
|     callback( | ||||
|       new Error( | ||||
|         os.platform() + | ||||
|           ' is not supported yet, please open an issue (https://github.com/simonepri/pidtree)' | ||||
|       ) | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   var list = methodToRequireFn[method](); | ||||
|   list(callback); | ||||
| } | ||||
|  | ||||
| module.exports = get; | ||||
							
								
								
									
										104
									
								
								node_modules/pidtree/lib/pidtree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										104
									
								
								node_modules/pidtree/lib/pidtree.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,104 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var getAll = require('./get'); | ||||
|  | ||||
| /** | ||||
|  * Get the list of children and grandchildren pids of the given PID. | ||||
|  * @param  {Number|String} PID A PID. If -1 will return all the pids. | ||||
|  * @param  {Object} [options] Optional options object. | ||||
|  * @param  {Boolean} [options.root=false] Include the provided PID in the list. | ||||
|  * @param  {Boolean} [options.advanced=false] Returns a list of objects in the | ||||
|  * format {pid: X, ppid: Y}. | ||||
|  * @param  {Function} callback(err, list) Called when the list is ready. | ||||
|  */ | ||||
| function list(PID, options, callback) { | ||||
|   if (typeof options === 'function') { | ||||
|     callback = options; | ||||
|     options = {}; | ||||
|   } | ||||
|  | ||||
|   if (typeof options !== 'object') { | ||||
|     options = {}; | ||||
|   } | ||||
|  | ||||
|   PID = parseInt(PID, 10); | ||||
|   if (isNaN(PID) || PID < -1) { | ||||
|     callback(new TypeError('The pid provided is invalid')); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
|   getAll(function(err, list) { | ||||
|     if (err) { | ||||
|       callback(err); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     // If the user wants the whole list just return it | ||||
|     if (PID === -1) { | ||||
|       for (var i = 0; i < list.length; i++) { | ||||
|         list[i] = options.advanced | ||||
|           ? {ppid: list[i][0], pid: list[i][1]} | ||||
|           : (list[i] = list[i][1]); | ||||
|       } | ||||
|  | ||||
|       callback(null, list); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     var root; | ||||
|     for (var l = 0; l < list.length; l++) { | ||||
|       if (list[l][1] === PID) { | ||||
|         root = options.advanced ? {ppid: list[l][0], pid: PID} : PID; | ||||
|         break; | ||||
|       } | ||||
|  | ||||
|       if (list[l][0] === PID) { | ||||
|         root = options.advanced ? {pid: PID} : PID; // Special pids like 0 on *nix | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     if (!root) { | ||||
|       callback(new Error('No matching pid found')); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     // Build the adiacency Hash Map (pid -> [children of pid]) | ||||
|     var tree = {}; | ||||
|     while (list.length > 0) { | ||||
|       var element = list.pop(); | ||||
|       if (tree[element[0]]) { | ||||
|         tree[element[0]].push(element[1]); | ||||
|       } else { | ||||
|         tree[element[0]] = [element[1]]; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     // Starting by the PID provided by the user, traverse the tree using the | ||||
|     // adiacency Hash Map until the whole subtree is visited. | ||||
|     // Each pid encountered while visiting is added to the pids array. | ||||
|     var idx = 0; | ||||
|     var pids = [root]; | ||||
|     while (idx < pids.length) { | ||||
|       var curpid = options.advanced ? pids[idx++].pid : pids[idx++]; | ||||
|       if (!tree[curpid]) continue; | ||||
|       var length = tree[curpid].length; | ||||
|       for (var j = 0; j < length; j++) { | ||||
|         pids.push( | ||||
|           options.advanced | ||||
|             ? {ppid: curpid, pid: tree[curpid][j]} | ||||
|             : tree[curpid][j] | ||||
|         ); | ||||
|       } | ||||
|  | ||||
|       delete tree[curpid]; | ||||
|     } | ||||
|  | ||||
|     if (!options.root) { | ||||
|       pids.shift(); // Remove root | ||||
|     } | ||||
|  | ||||
|     callback(null, pids); | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = list; | ||||
							
								
								
									
										47
									
								
								node_modules/pidtree/lib/ps.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								node_modules/pidtree/lib/ps.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var os = require('os'); | ||||
| var bin = require('./bin'); | ||||
|  | ||||
| /** | ||||
|  * Gets the list of all the pids of the system through the ps command. | ||||
|  * @param  {Function} callback(err, list) | ||||
|  */ | ||||
| function ps(callback) { | ||||
|   var args = ['-A', '-o', 'ppid,pid']; | ||||
|  | ||||
|   bin('ps', args, function(err, stdout, code) { | ||||
|     if (err) return callback(err); | ||||
|     if (code !== 0) { | ||||
|       return callback(new Error('pidtree ps command exited with code ' + code)); | ||||
|     } | ||||
|  | ||||
|     // Example of stdout | ||||
|     // | ||||
|     // PPID   PID | ||||
|     //    1   430 | ||||
|     //  430   432 | ||||
|     //    1   727 | ||||
|     //    1  7166 | ||||
|  | ||||
|     try { | ||||
|       stdout = stdout.split(os.EOL); | ||||
|  | ||||
|       var list = []; | ||||
|       for (var i = 1; i < stdout.length; i++) { | ||||
|         stdout[i] = stdout[i].trim(); | ||||
|         if (!stdout[i]) continue; | ||||
|         stdout[i] = stdout[i].split(/\s+/); | ||||
|         stdout[i][0] = parseInt(stdout[i][0], 10); // PPID | ||||
|         stdout[i][1] = parseInt(stdout[i][1], 10); // PID | ||||
|         list.push(stdout[i]); | ||||
|       } | ||||
|  | ||||
|       callback(null, list); | ||||
|     } catch (error) { | ||||
|       callback(error); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = ps; | ||||
							
								
								
									
										49
									
								
								node_modules/pidtree/lib/wmic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								node_modules/pidtree/lib/wmic.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,49 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| var os = require('os'); | ||||
| var bin = require('./bin'); | ||||
|  | ||||
| /** | ||||
|  * Gets the list of all the pids of the system through the wmic command. | ||||
|  * @param  {Function} callback(err, list) | ||||
|  */ | ||||
| function wmic(callback) { | ||||
|   var args = ['PROCESS', 'get', 'ParentProcessId,ProcessId']; | ||||
|   var options = {windowsHide: true, windowsVerbatimArguments: true}; | ||||
|   bin('wmic', args, options, function(err, stdout, code) { | ||||
|     if (err) { | ||||
|       callback(err); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     if (code !== 0) { | ||||
|       callback(new Error('pidtree wmic command exited with code ' + code)); | ||||
|       return; | ||||
|     } | ||||
|  | ||||
|     // Example of stdout | ||||
|     // | ||||
|     // ParentProcessId  ProcessId | ||||
|     // 0                777 | ||||
|  | ||||
|     try { | ||||
|       stdout = stdout.split(os.EOL); | ||||
|  | ||||
|       var list = []; | ||||
|       for (var i = 1; i < stdout.length; i++) { | ||||
|         stdout[i] = stdout[i].trim(); | ||||
|         if (!stdout[i]) continue; | ||||
|         stdout[i] = stdout[i].split(/\s+/); | ||||
|         stdout[i][0] = parseInt(stdout[i][0], 10); // PPID | ||||
|         stdout[i][1] = parseInt(stdout[i][1], 10); // PID | ||||
|         list.push(stdout[i]); | ||||
|       } | ||||
|  | ||||
|       callback(null, list); | ||||
|     } catch (error) { | ||||
|       callback(error); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
|  | ||||
| module.exports = wmic; | ||||
		Reference in New Issue
	
	Block a user