Skip to content

Commit

Permalink
style(): minor formatting changes
Browse files Browse the repository at this point in the history
  • Loading branch information
kamilmysliwiec committed Jul 27, 2021
1 parent 80f27f4 commit 111e39f
Showing 1 changed file with 58 additions and 59 deletions.
117 changes: 58 additions & 59 deletions lib/utils/tree-kill.ts
Original file line number Diff line number Diff line change
@@ -1,81 +1,80 @@
import { execSync } from 'child_process';

export function treeKillSync(pid: number, signal?: string | number): void {
if (process.platform === 'win32') {
execSync('taskkill /pid ' + pid + ' /T /F');
return;
}

if (process.platform === "win32") {
execSync('taskkill /pid ' + pid + ' /T /F');
return;
}

const childs = getAllChilds(pid);

childs.forEach(function (pid) {
killPid(pid, signal);
});

const childs = getAllChilds(pid);
childs.forEach(function (pid) {
killPid(pid, signal);
return
});

killPid(pid, signal);
return;
}

function getAllPid(): {
pid: number,
ppid: number
pid: number;
ppid: number;
}[] {
const rows = execSync('ps -A -o pid,ppid')
.toString()
.trim()
.split('\n')
.slice(1);

return rows.map(function (row) {
var parts = row.match(/\s*(\d+)\s*(\d+)/);

if (parts === null) {
return null;
}

return {
pid: Number(parts[1]),
ppid: Number(parts[2])
};
}).filter(<T extends Object>(input: null | undefined | T): input is T => {
return input != null;
const rows = execSync('ps -A -o pid,ppid')
.toString()
.trim()
.split('\n')
.slice(1);

return rows
.map(function (row) {
var parts = row.match(/\s*(\d+)\s*(\d+)/);

if (parts === null) {
return null;
}

return {
pid: Number(parts[1]),
ppid: Number(parts[2]),
};
})
.filter(<T extends Object>(input: null | undefined | T): input is T => {
return input != null;
});
}

function getAllChilds(pid: number) {
const allpid = getAllPid();

let ppidHash: {
[key: number]: number[]
} = {};
const allpid = getAllPid();

let result: number[] = [];
let ppidHash: {
[key: number]: number[];
} = {};

allpid.forEach(function (item) {
ppidHash[item.ppid] = ppidHash[item.ppid] || [];
ppidHash[item.ppid].push(item.pid);
});
let result: number[] = [];

const find = function (pid: number) {
ppidHash[pid] = ppidHash[pid] || [];
ppidHash[pid].forEach(function (childPid) {
result.push(childPid);
find(childPid);
});
};
allpid.forEach(function (item) {
ppidHash[item.ppid] = ppidHash[item.ppid] || [];
ppidHash[item.ppid].push(item.pid);
});

find(pid);
const find = function (pid: number) {
ppidHash[pid] = ppidHash[pid] || [];
ppidHash[pid].forEach(function (childPid) {
result.push(childPid);
find(childPid);
});
};

return result;
find(pid);
return result;
}

function killPid(pid: number, signal?: string | number) {
try {
process.kill(pid, signal);
} catch (err) {
if (err.code !== 'ESRCH') {
throw err;
}
try {
process.kill(pid, signal);
} catch (err) {
if (err.code !== 'ESRCH') {
throw err;
}
}
}
}

0 comments on commit 111e39f

Please sign in to comment.