-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdealias.js
29 lines (28 loc) · 1.02 KB
/
dealias.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import {run} from './run';
export function dealias(alias) {
if (/^win/.test(process.platform)) {
return Promise.resolve(alias);
} else {
return new Promise(resolve => {
let command;
if (process.platform === 'linux') {
command = "bash -i -c 'alias -p'";
} else {
command = "bash -l -c 'alias -p'";
}
run(command).then(aliasString => {
let aliases = aliasString.split('\n').map(alias => alias.trim());
for (let i = 0; i < aliases.length; i++) {
if (aliases[i].length > 0 && aliases[i].indexOf('alias ') === 0) {
let aliasSet = aliases[i].slice(6).split('=');
if (aliasSet[0] === alias) {
resolve(aliasSet[1].slice(1, -1).split(' '));
return;
}
}
}
resolve([alias]);
});
});
}
}