@@ -20,11 +20,7 @@ export function get (path, args) {
20
20
21
21
export function get_ ( path , args ) {
22
22
const env = customEnv ( )
23
- if ( process . platform == 'win32' ) {
24
- return getWindows ( path , args , env )
25
- } else {
26
- return getUnix ( path , args , env )
27
- }
23
+ return getUnix ( path , args , env )
28
24
}
29
25
30
26
export function customEnv ( env = process . env ) {
@@ -47,8 +43,6 @@ export function customEnv (env = process.env) {
47
43
return env
48
44
}
49
45
50
- // TODO: reduce code duplication in getUnix and getWindows
51
-
52
46
function getUnix ( path , args , env ) {
53
47
return new Promise ( ( resolve , reject ) => {
54
48
tcp . listen ( ) . then ( ( port ) => {
@@ -70,10 +64,7 @@ function getUnix (path, args, env) {
70
64
let proc = {
71
65
ty : ty ,
72
66
kill : ( ) => ty . kill ( ) ,
73
- interrupt : ( ) => ty . kill ( 'SIGINT' ) ,
74
- // more robust REPL-only interrupt, in theory only needed on windows
75
- // without powershell wrapper:
76
- interruptREPL : ( ) => ty . write ( '\x03' ) ,
67
+ interrupt : ( ) => ty . write ( '\x03' ) ,
77
68
socket : sock ,
78
69
onExit : ( f ) => ty . on ( 'exit' , f ) ,
79
70
onStderr : ( f ) => { } ,
@@ -93,71 +84,6 @@ function getUnix (path, args, env) {
93
84
} )
94
85
}
95
86
96
- function getWindows ( path , args , env ) {
97
- if ( ! atom . config . get ( 'julia-client.juliaOptions.enablePowershellWrapper' ) ) {
98
- return getUnix ( path , args , env )
99
- }
100
- return new Promise ( ( resolve , reject ) => {
101
- tcp . listen ( ) . then ( ( port ) => {
102
- freePort ( ) . then ( ( wrapPort ) => {
103
- paths . fullPath ( "powershell" ) . then ( ( psPath ) => {
104
- paths . projectDir ( ) . then ( ( cwd ) => {
105
- let jlargs = [ ...args , '"`"' + paths . script ( 'boot_repl.jl' ) + '`""' , ` ${ port } ` ]
106
- let ty = pty . spawn ( psPath ,
107
- [ "-NoProfile" , "-ExecutionPolicy" , "bypass" ,
108
- `& \"${ paths . script ( 'spawnInterruptible.ps1' ) } \"` ,
109
- `-wrapPort ${ wrapPort } ` ,
110
- `-jlpath \"${ path } \"` ,
111
- `-jlargs ${ jlargs } ` ] , {
112
- cols : 100 ,
113
- rows : 30 ,
114
- env : env ,
115
- useConpty : true
116
- } )
117
-
118
- let sock = socket ( ty )
119
- sock . catch ( ( err ) => reject ( err ) )
120
-
121
- let proc = {
122
- ty : ty ,
123
- kill : ( ) => {
124
- sendSignalToWrapper ( 'KILL' , wrapPort )
125
- ty . kill ( )
126
- } ,
127
- interrupt : ( ) => sendSignalToWrapper ( 'SIGINT' , wrapPort ) ,
128
- // more robust REPL-only interrupt, in theory only needed on windows
129
- // without powershell wrapper:
130
- interruptREPL : ( ) => ty . write ( '\x03' ) ,
131
- socket : sock ,
132
- onExit : ( f ) => ty . on ( 'exit' , f ) ,
133
- onStderr : ( f ) => { } ,
134
- onStdout : ( f ) => ty . on ( 'data' , f )
135
- }
136
-
137
- resolve ( proc )
138
- } ) . catch ( ( err ) => {
139
- reject ( err )
140
- } )
141
- } ) . catch ( ( err ) => {
142
- atom . notifications . addError ( 'Julia could not be started.' , {
143
- description : "We tried to start Julia with the `powershell` wrapper but " +
144
- "could not find `powershell` or `where` on your `PATH`. Please make sure " +
145
- "`%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0` and " +
146
- "`%SYSTEMROOT%\\System32` are on your `PATH` and restart Juno." ,
147
- detail : err ,
148
- dismissable : true
149
- } )
150
- reject ( err )
151
- } )
152
- } ) . catch ( ( err ) => {
153
- reject ( err )
154
- } )
155
- } ) . catch ( ( err ) => {
156
- reject ( err )
157
- } )
158
- } )
159
- }
160
-
161
87
function freePort ( ) {
162
88
return new Promise ( ( resolve ) => {
163
89
let server = net . createServer ( )
@@ -169,13 +95,6 @@ function freePort() {
169
95
} )
170
96
}
171
97
172
- function sendSignalToWrapper ( signal , port ) {
173
- let wrapper = net . connect ( { port} )
174
- wrapper . setNoDelay ( )
175
- wrapper . write ( signal )
176
- wrapper . end ( )
177
- }
178
-
179
98
function socket ( ty ) {
180
99
conn = tcp . next ( )
181
100
failure = new Promise ( ( resolve , reject ) => {
0 commit comments