-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathhelpers.js
More file actions
116 lines (93 loc) · 2.53 KB
/
helpers.js
File metadata and controls
116 lines (93 loc) · 2.53 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
exports.resolveRdbgPath = async function() {
return new Promise((resolve, reject) => {
const process = new Process("/usr/bin/env", {
cwd: nova.workspace.path,
args: ["which", "rdbg"],
stdio: ["ignore", "pipe", "pipe"],
shell: true
})
let str = ""
let err = ""
process.onStdout((output) => {
str += output
})
process.onStderr((error) => {
err += error
})
process.onDidExit((status) => {
if (status == 1) {
console.error("An error occured while determining `rdbg` path.")
reject(err)
}
str = str.trim()
if (str.length == 0 || str == "rdbg not found") {
reject(new Error("Impossible to find rdbg in $PATH."))
}
resolve(str)
})
process.start()
})
}
exports.resolveRubyDebugSocketPath = async function() {
return new Promise((resolve, reject) => {
const process = new Process("/usr/bin/env", {
cwd: nova.workspace.path,
args: ["rdbg", "--util=list-socks"],
stdio: ["ignore", "pipe", "pipe"],
shell: false
})
let str = ""
let err = ""
process.onStdout((output) => {
str += output
})
process.onStderr((error) => {
err += error
})
process.onDidExit((status) => {
if (status == 1) {
console.error("An error occured while determining open rdbg sockets.")
reject(err)
}
str = str.trim()
if (str.length == 0) {
reject(new Error("No open socket. Make sure you have launched rdbg with the --open flag."))
}
if (str.split(/\r?\n/).length > 1) {
reject(new Error("Multiple open sockets. Please specify which one to use."))
}
resolve(str)
})
process.start()
})
}
exports.generateRubyDebugSocketPath = async function() {
return new Promise((resolve, reject) => {
const process = new Process("/usr/bin/env", {
cwd: nova.workspace.path,
args: ["rdbg", "--util=gen-sockpath"],
stdio: ["ignore", "pipe", "pipe"],
shell: true
})
let str = ""
let err = ""
process.onStdout((output) => {
str += output
})
process.onStderr((error) => {
err += error
})
process.onDidExit((status) => {
if (status == 1) {
console.error("An error occured whyle generating rdbg socket.")
reject(err)
}
str = str.trim()
if (str.length == 0) {
reject(new Error("Impossible to generate socket path. Make sure rdbg is in $PATH."))
}
resolve(str)
})
process.start()
})
}