@tasenor/common-node 1.10.17 → 1.10.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/net/git.d.ts +5 -1
- package/dist/src/net/git.js +12 -2
- package/dist/src/net/git.js.map +1 -1
- package/dist/src/plugins/ImportPlugin.d.ts +2 -0
- package/dist/src/plugins/ImportPlugin.js +2 -0
- package/dist/src/plugins/ImportPlugin.js.map +1 -1
- package/dist/src/server/index.d.ts +1 -0
- package/dist/src/server/index.js +1 -0
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/server.d.ts +7 -0
- package/dist/src/server/server.js +32 -0
- package/dist/src/server/server.js.map +1 -0
- package/dist/src/system.d.ts +1 -1
- package/dist/src/system.js +8 -3
- package/dist/src/system.js.map +1 -1
- package/package.json +3 -3
- package/src/net/git.ts +11 -2
- package/src/plugins/ImportPlugin.ts +2 -0
- package/src/server/index.ts +1 -0
- package/src/server/server.ts +36 -0
- package/src/system.ts +6 -3
package/dist/src/net/git.d.ts
CHANGED
|
@@ -13,7 +13,11 @@ export declare class GitRepo {
|
|
|
13
13
|
/**
|
|
14
14
|
* Set the git configuration.
|
|
15
15
|
*/
|
|
16
|
-
configure(
|
|
16
|
+
configure(conf: {
|
|
17
|
+
name: string;
|
|
18
|
+
email: Email;
|
|
19
|
+
sshPrivateKey: FilePath | null;
|
|
20
|
+
}): void;
|
|
17
21
|
/**
|
|
18
22
|
* Initialize root path and instantiate Simple Git if path exists.
|
|
19
23
|
*/
|
package/dist/src/net/git.js
CHANGED
|
@@ -28,8 +28,14 @@ export class GitRepo {
|
|
|
28
28
|
/**
|
|
29
29
|
* Set the git configuration.
|
|
30
30
|
*/
|
|
31
|
-
configure(
|
|
32
|
-
this.git.addConfig('user.name', name).addConfig('user.email', email);
|
|
31
|
+
configure(conf) {
|
|
32
|
+
this.git.addConfig('user.name', conf.name).addConfig('user.email', conf.email);
|
|
33
|
+
if (conf.sshPrivateKey) {
|
|
34
|
+
this.git.env('GIT_SSH_COMMAND', `ssh -i "${conf.sshPrivateKey}"`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.git.env('GIT_SSH_COMMAND', 'ssh');
|
|
38
|
+
}
|
|
33
39
|
}
|
|
34
40
|
/**
|
|
35
41
|
* Initialize root path and instantiate Simple Git if path exists.
|
|
@@ -86,6 +92,10 @@ export class GitRepo {
|
|
|
86
92
|
*/
|
|
87
93
|
async put(message, ...subPaths) {
|
|
88
94
|
let fail = false;
|
|
95
|
+
await this.git.pull().catch(err => {
|
|
96
|
+
error(`Git pull failed: ${err}`);
|
|
97
|
+
fail = true;
|
|
98
|
+
});
|
|
89
99
|
await this.git.add(subPaths).catch(err => {
|
|
90
100
|
error(`Git add failed: ${err}`);
|
|
91
101
|
fail = true;
|
package/dist/src/net/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/net/git.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,EAAY,GAAG,EAAO,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,SAAwB,MAAM,YAAY,CAAA;AACjD,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;GAEG;AACH,MAAM,OAAO,OAAO;IAElB,GAAG,CAAK;IACR,OAAO,CAAe;IACtB,IAAI,CAAQ;IACZ,GAAG,CAAW;IAEd,YAAY,GAAQ,EAAE,OAAsB;QAC1C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACpC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAS,OAAO,EAAE,MAAM,EAAE,MAAM;YACrD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YACrD,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAa,CAAA;IACvD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/net/git.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export declare class ImportPlugin extends BackendPlugin {
|
|
|
25
25
|
'account-fee-crypto': string;
|
|
26
26
|
'account-forex-currency': string;
|
|
27
27
|
'account-income-currency': string;
|
|
28
|
+
'account-income-crypto': string;
|
|
28
29
|
'account-income-statement': string;
|
|
29
30
|
'account-investment-currency': string;
|
|
30
31
|
'account-investment-statement': string;
|
|
@@ -89,6 +90,7 @@ export declare class ImportPlugin extends BackendPlugin {
|
|
|
89
90
|
'account-fee-crypto': string;
|
|
90
91
|
'account-forex-currency': string;
|
|
91
92
|
'account-income-currency': string;
|
|
93
|
+
'account-income-crypto': string;
|
|
92
94
|
'account-income-statement': string;
|
|
93
95
|
'account-investment-currency': string;
|
|
94
96
|
'account-investment-statement': string;
|
|
@@ -33,6 +33,7 @@ export class ImportPlugin extends BackendPlugin {
|
|
|
33
33
|
'account-fee-crypto': 'Account for fees in {asset} crypto currency',
|
|
34
34
|
'account-forex-currency': 'Account for {asset} foreign exchange',
|
|
35
35
|
'account-income-currency': 'Account for income in {asset} currency',
|
|
36
|
+
'account-income-crypto': 'Account for income in {asset} crypto currency',
|
|
36
37
|
'account-income-statement': 'Account for recording income {asset}',
|
|
37
38
|
'account-investment-currency': 'Account for receiving investments in {asset} currency',
|
|
38
39
|
'account-investment-statement': 'Account for recording investment {asset}',
|
|
@@ -97,6 +98,7 @@ export class ImportPlugin extends BackendPlugin {
|
|
|
97
98
|
'account-fee-crypto': 'Tili käyttömaksuille {asset} kryptovaluutassa',
|
|
98
99
|
'account-forex-currency': 'Valuutanvaihtotili {asset} valuutalle',
|
|
99
100
|
'account-income-currency': 'Tili tuloille {asset} valuutassa',
|
|
101
|
+
'account-income-crypto': 'Tili tuloille {asset} kryptovaluutassa',
|
|
100
102
|
'account-income-statement': 'Raportointitili {asset} tuloille',
|
|
101
103
|
'account-investment-currency': 'Tili saaduille sijoituksille {asset} valuutassa',
|
|
102
104
|
'account-investment-statement': 'Raportointitili sijoituksille {asset}',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportPlugin.js","sourceRoot":"","sources":["../../../src/plugins/ImportPlugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImportPlugin.js","sourceRoot":"","sources":["../../../src/plugins/ImportPlugin.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { log, error, waitPromise } from '@tasenor/common';
|
|
2
|
+
import { killPortUser } from '../system';
|
|
3
|
+
/**
|
|
4
|
+
* Try to establish a listener for the server port.
|
|
5
|
+
*/
|
|
6
|
+
async function listener(app, port, main) {
|
|
7
|
+
return new Promise((resolve) => {
|
|
8
|
+
log('Setting up listener...');
|
|
9
|
+
const listener = app.listen(port).on('error', (err) => {
|
|
10
|
+
error('Launching failed:', err + '');
|
|
11
|
+
if ('code' in err && err.code === 'EADDRINUSE') {
|
|
12
|
+
error('Trying to kill existing process...');
|
|
13
|
+
killPortUser(port);
|
|
14
|
+
}
|
|
15
|
+
resolve(false);
|
|
16
|
+
}).on('listening', async () => {
|
|
17
|
+
main(listener);
|
|
18
|
+
resolve(true);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Launch the listener for a server.
|
|
24
|
+
*/
|
|
25
|
+
export async function listen(app, port, main) {
|
|
26
|
+
while (true) {
|
|
27
|
+
if (await listener(app, parseInt(`${port}`), main))
|
|
28
|
+
break;
|
|
29
|
+
await waitPromise(2000);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC;;GAEG;AACH,KAAK,UAAU,QAAQ,CAAC,GAAY,EAAE,IAAY,EAAE,IAAyB;IAC3E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAE7B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAC/B,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,KAAK,CAAC,mBAAmB,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;YACpC,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;gBAC9C,KAAK,CAAC,oCAAoC,CAAC,CAAA;gBAC3C,YAAY,CAAC,IAAI,CAAC,CAAA;aACnB;YACD,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,CAAA;YACd,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,GAAY,EAAE,IAAqB,EAAE,IAAyB;IACzF,OAAO,IAAI,EAAE;QACX,IAAI,MAAM,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC;YAAE,MAAK;QACzD,MAAM,WAAW,CAAC,IAAI,CAAC,CAAA;KACxB;AACH,CAAC"}
|
package/dist/src/system.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @param quiet If set, do not output.
|
|
5
5
|
* @returns Srandard output if successfully executed.
|
|
6
6
|
*/
|
|
7
|
-
export declare function system(command: string, quiet?: boolean): Promise<string>;
|
|
7
|
+
export declare function system(command: string, quiet?: boolean, ignoreError?: boolean): Promise<string | null>;
|
|
8
8
|
/**
|
|
9
9
|
* A system call showing real time output of stdout.
|
|
10
10
|
* @param command
|
package/dist/src/system.js
CHANGED
|
@@ -9,7 +9,7 @@ import { log, error, note } from '@tasenor/common';
|
|
|
9
9
|
* @param quiet If set, do not output.
|
|
10
10
|
* @returns Srandard output if successfully executed.
|
|
11
11
|
*/
|
|
12
|
-
export async function system(command, quiet = false) {
|
|
12
|
+
export async function system(command, quiet = false, ignoreError = false) {
|
|
13
13
|
if (!quiet) {
|
|
14
14
|
log(`Running system command: ${command}`);
|
|
15
15
|
}
|
|
@@ -18,6 +18,8 @@ export async function system(command, quiet = false) {
|
|
|
18
18
|
if (err) {
|
|
19
19
|
if (!quiet)
|
|
20
20
|
error(err);
|
|
21
|
+
if (ignoreError)
|
|
22
|
+
return resolve(null);
|
|
21
23
|
return reject(err);
|
|
22
24
|
}
|
|
23
25
|
if (stderr && !quiet) {
|
|
@@ -71,9 +73,12 @@ export async function systemPiped(command, quiet = false, ignoreError = false) {
|
|
|
71
73
|
* Try to kill a process holding the TCP port.
|
|
72
74
|
*/
|
|
73
75
|
export async function killPortUser(port) {
|
|
74
|
-
const out = await systemPiped(`fuser -n tcp ${port}`, true);
|
|
76
|
+
const out = await systemPiped(`fuser -n tcp ${port}`, true, true);
|
|
75
77
|
if (out) {
|
|
76
|
-
system(`kill ${out.trim()}
|
|
78
|
+
system(`kill ${out.trim()}`, true);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
error(`Cannot find process accessing TCP ${port}.`);
|
|
77
82
|
}
|
|
78
83
|
}
|
|
79
84
|
/**
|
package/dist/src/system.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/system.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAElD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAe,EAAE,KAAK,GAAG,KAAK;
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/system.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tasenor/common-node",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.18",
|
|
4
4
|
"description": "Common Node-parts of Tasenor project",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"types": "src/index.ts",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"sqlite3": "^5.1.6",
|
|
37
37
|
"tar": "^6.1.15",
|
|
38
38
|
"ts-opaque": "^3.0.1",
|
|
39
|
-
"@tasenor/common": "1.10.
|
|
39
|
+
"@tasenor/common": "1.10.18"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@jest/globals": "^29.6.1",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"ts-jest": "^29.1.1",
|
|
47
47
|
"typescript": "^5.1.6",
|
|
48
48
|
"eslint-config-tasenor": "0.0.0",
|
|
49
|
-
"@tasenor/config": "1.10.
|
|
49
|
+
"@tasenor/config": "1.10.18"
|
|
50
50
|
},
|
|
51
51
|
"scripts": {
|
|
52
52
|
"ci": "pnpm run lint && pnpm run test",
|
package/src/net/git.ts
CHANGED
|
@@ -33,8 +33,13 @@ export class GitRepo {
|
|
|
33
33
|
/**
|
|
34
34
|
* Set the git configuration.
|
|
35
35
|
*/
|
|
36
|
-
configure(name: string, email: Email) {
|
|
37
|
-
this.git.addConfig('user.name', name).addConfig('user.email', email)
|
|
36
|
+
configure(conf: { name: string, email: Email, sshPrivateKey: FilePath | null }) {
|
|
37
|
+
this.git.addConfig('user.name', conf.name).addConfig('user.email', conf.email)
|
|
38
|
+
if (conf.sshPrivateKey) {
|
|
39
|
+
this.git.env('GIT_SSH_COMMAND', `ssh -i "${conf.sshPrivateKey}"`)
|
|
40
|
+
} else {
|
|
41
|
+
this.git.env('GIT_SSH_COMMAND', 'ssh')
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
44
|
|
|
40
45
|
/**
|
|
@@ -95,6 +100,10 @@ export class GitRepo {
|
|
|
95
100
|
*/
|
|
96
101
|
async put(message: string, ...subPaths: (FilePath | DirectoryPath)[]): Promise<boolean> {
|
|
97
102
|
let fail = false
|
|
103
|
+
await this.git.pull().catch(err => {
|
|
104
|
+
error(`Git pull failed: ${err}`)
|
|
105
|
+
fail = true
|
|
106
|
+
})
|
|
98
107
|
await this.git.add(subPaths).catch(err => {
|
|
99
108
|
error(`Git add failed: ${err}`)
|
|
100
109
|
fail = true
|
|
@@ -39,6 +39,7 @@ export class ImportPlugin extends BackendPlugin {
|
|
|
39
39
|
'account-fee-crypto': 'Account for fees in {asset} crypto currency',
|
|
40
40
|
'account-forex-currency': 'Account for {asset} foreign exchange',
|
|
41
41
|
'account-income-currency': 'Account for income in {asset} currency',
|
|
42
|
+
'account-income-crypto': 'Account for income in {asset} crypto currency',
|
|
42
43
|
'account-income-statement': 'Account for recording income {asset}',
|
|
43
44
|
'account-investment-currency': 'Account for receiving investments in {asset} currency',
|
|
44
45
|
'account-investment-statement': 'Account for recording investment {asset}',
|
|
@@ -103,6 +104,7 @@ export class ImportPlugin extends BackendPlugin {
|
|
|
103
104
|
'account-fee-crypto': 'Tili käyttömaksuille {asset} kryptovaluutassa',
|
|
104
105
|
'account-forex-currency': 'Valuutanvaihtotili {asset} valuutalle',
|
|
105
106
|
'account-income-currency': 'Tili tuloille {asset} valuutassa',
|
|
107
|
+
'account-income-crypto': 'Tili tuloille {asset} kryptovaluutassa',
|
|
106
108
|
'account-income-statement': 'Raportointitili {asset} tuloille',
|
|
107
109
|
'account-investment-currency': 'Tili saaduille sijoituksille {asset} valuutassa',
|
|
108
110
|
'account-investment-statement': 'Raportointitili sijoituksille {asset}',
|
package/src/server/index.ts
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Server } from 'http'
|
|
2
|
+
import { Express } from 'express'
|
|
3
|
+
import { log, error, waitPromise } from '@tasenor/common'
|
|
4
|
+
import { killPortUser } from '../system'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Try to establish a listener for the server port.
|
|
8
|
+
*/
|
|
9
|
+
async function listener(app: Express, port: number, main: (s: Server) => void): Promise<boolean> {
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
log('Setting up listener...')
|
|
12
|
+
|
|
13
|
+
const listener = app.listen(port,
|
|
14
|
+
).on('error', (err) => {
|
|
15
|
+
error('Launching failed:', err + '')
|
|
16
|
+
if ('code' in err && err.code === 'EADDRINUSE') {
|
|
17
|
+
error('Trying to kill existing process...')
|
|
18
|
+
killPortUser(port)
|
|
19
|
+
}
|
|
20
|
+
resolve(false)
|
|
21
|
+
}).on('listening', async () => {
|
|
22
|
+
main(listener)
|
|
23
|
+
resolve(true)
|
|
24
|
+
})
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Launch the listener for a server.
|
|
30
|
+
*/
|
|
31
|
+
export async function listen(app: Express, port: number | string, main: (s: Server) => void) {
|
|
32
|
+
while (true) {
|
|
33
|
+
if (await listener(app, parseInt(`${port}`), main)) break
|
|
34
|
+
await waitPromise(2000)
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/system.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { log, error, note } from '@tasenor/common'
|
|
|
10
10
|
* @param quiet If set, do not output.
|
|
11
11
|
* @returns Srandard output if successfully executed.
|
|
12
12
|
*/
|
|
13
|
-
export async function system(command: string, quiet = false): Promise<string> {
|
|
13
|
+
export async function system(command: string, quiet = false, ignoreError = false): Promise<string|null> {
|
|
14
14
|
if (!quiet) {
|
|
15
15
|
log(`Running system command: ${command}`)
|
|
16
16
|
}
|
|
@@ -18,6 +18,7 @@ export async function system(command: string, quiet = false): Promise<string> {
|
|
|
18
18
|
exec(command, { maxBuffer: 1024 * 1024 * 500 }, (err, stdout, stderr) => {
|
|
19
19
|
if (err) {
|
|
20
20
|
if (!quiet) error(err)
|
|
21
|
+
if (ignoreError) return resolve(null)
|
|
21
22
|
return reject(err)
|
|
22
23
|
}
|
|
23
24
|
if (stderr && !quiet) {
|
|
@@ -71,9 +72,11 @@ export async function systemPiped(command: string, quiet = false, ignoreError =
|
|
|
71
72
|
* Try to kill a process holding the TCP port.
|
|
72
73
|
*/
|
|
73
74
|
export async function killPortUser(port: string | number): Promise<void> {
|
|
74
|
-
const out = await systemPiped(`fuser -n tcp ${port}`, true)
|
|
75
|
+
const out = await systemPiped(`fuser -n tcp ${port}`, true, true)
|
|
75
76
|
if (out) {
|
|
76
|
-
system(`kill ${out.trim()}
|
|
77
|
+
system(`kill ${out.trim()}`, true)
|
|
78
|
+
} else {
|
|
79
|
+
error(`Cannot find process accessing TCP ${port}.`)
|
|
77
80
|
}
|
|
78
81
|
}
|
|
79
82
|
|