1
1
import * as path from 'path' ;
2
- import * as os from 'os' ;
3
2
import * as fs from 'fs' ;
4
- import * as crypto from 'crypto' ;
5
3
import * as vscode from 'vscode' ;
4
+ import { QuickPickItem } from 'vscode' ;
6
5
import * as extProtocol from './extensionProtocol' ;
7
6
import { Services } from '../services/extensionHostServices' ;
8
- import { QuickPickItem } from "vscode" ;
7
+ import { getSocketId } from "./sockedId" ;
8
+
9
9
let ipc = require ( 'node-ipc' ) ;
10
10
11
11
export class ExtensionServer {
12
12
private _isRunning : boolean ;
13
13
14
- public static getTempFilePathForDirectory ( directoryPath : string ) {
15
- let fileName : string = 'vsc-ns-ext-' + crypto . createHash ( 'md5' ) . update ( directoryPath ) . digest ( "hex" ) + '.sock' ;
16
- return path . join ( os . tmpdir ( ) , fileName ) ;
17
- }
18
-
19
14
constructor ( ) {
20
15
this . _isRunning = false ;
21
16
}
22
17
23
- public getPipeHandlePath ( ) : string {
24
- return vscode . workspace . rootPath ?
25
- ExtensionServer . getTempFilePathForDirectory ( vscode . workspace . rootPath ) :
26
- null ;
27
- }
28
-
29
18
public start ( ) {
30
19
if ( ! this . _isRunning ) {
31
- let pipeHandlePath = this . getPipeHandlePath ( ) ;
32
- if ( pipeHandlePath ) {
33
- ipc . serve (
34
- pipeHandlePath ,
35
- ( ) => {
36
- ipc . server . on ( 'extension-protocol-message' , ( data : extProtocol . Request , socket ) => {
37
- return ( < Promise < Object > > this [ data . method ] . call ( this , data . args ) ) . then ( result => {
38
- let response : extProtocol . Response = { requestId : data . id , result : result } ;
39
- return ipc . server . emit ( socket , 'extension-protocol-message' , response ) ;
40
- } ) ;
20
+ ipc . config . id = getSocketId ( ) ;
21
+ ipc . serve (
22
+ ( ) => {
23
+ ipc . server . on ( 'extension-protocol-message' , ( data : extProtocol . Request , socket ) => {
24
+ return ( < Promise < Object > > this [ data . method ] . call ( this , data . args ) ) . then ( result => {
25
+ let response : extProtocol . Response = { requestId : data . id , result : result } ;
26
+ return ipc . server . emit ( socket , 'extension-protocol-message' , response ) ;
41
27
} ) ;
42
28
} ) ;
43
- ipc . server . start ( ) ;
44
- this . _isRunning = true ;
45
- }
29
+ } ) ;
30
+ ipc . server . start ( ) ;
31
+ this . _isRunning = true ;
46
32
}
47
33
return this . _isRunning ;
48
34
}
@@ -60,7 +46,7 @@ export class ExtensionServer {
60
46
61
47
public getInitSettings ( ) : Promise < extProtocol . InitSettingsResult > {
62
48
let tnsPath = Services . workspaceConfigService ( ) . tnsPath ;
63
- return Promise . resolve ( { tnsPath : tnsPath } ) ;
49
+ return Promise . resolve ( { tnsPath : tnsPath } ) ;
64
50
}
65
51
66
52
public analyticsLaunchDebugger ( args : extProtocol . AnalyticsLaunchDebuggerArgs ) : Promise < any > {
@@ -115,7 +101,7 @@ export class ExtensionServer {
115
101
let teamIds : any = { } ;
116
102
for ( let file of files ) {
117
103
let filePath = path . join ( dir , file ) ;
118
- let data = fs . readFileSync ( filePath , { encoding : "utf8" } ) ;
104
+ let data = fs . readFileSync ( filePath , { encoding : "utf8" } ) ;
119
105
let teamId = this . getProvisioningProfileValue ( "TeamIdentifier" , data ) ;
120
106
let teamName = this . getProvisioningProfileValue ( "TeamName" , data ) ;
121
107
if ( teamId ) {
@@ -125,29 +111,28 @@ export class ExtensionServer {
125
111
126
112
let teamIdsArray = new Array < { id : string , name : string } > ( ) ;
127
113
for ( let teamId in teamIds ) {
128
- teamIdsArray . push ( { id : teamId , name : teamIds [ teamId ] } ) ;
114
+ teamIdsArray . push ( { id : teamId , name : teamIds [ teamId ] } ) ;
129
115
}
130
116
131
117
return teamIdsArray ;
132
118
} catch ( e ) {
133
119
// no matter what happens, don't break
134
120
return new Array < { id : string , name : string } > ( ) ;
135
121
}
136
- }
122
+ }
137
123
138
124
private getProvisioningProfileValue ( name : string , text : string ) : string {
139
- let findStr = "<key>" + name + "</key>" ;
140
- let index = text . indexOf ( findStr ) ;
141
- if ( index > 0 ) {
142
- index = text . indexOf ( "<string>" , index + findStr . length ) ;
143
- if ( index > 0 ) {
144
- index += "<string>" . length ;
145
- let endIndex = text . indexOf ( "</string>" , index ) ;
146
- let result = text . substring ( index , endIndex ) ;
147
- return result ;
148
- }
149
- }
150
-
151
- return null ;
152
- }
125
+ let findStr = "<key>" + name + "</key>" ;
126
+ let index = text . indexOf ( findStr ) ;
127
+ if ( index > 0 ) {
128
+ index = text . indexOf ( "<string>" , index + findStr . length ) ;
129
+ if ( index > 0 ) {
130
+ index += "<string>" . length ;
131
+ let endIndex = text . indexOf ( "</string>" , index ) ;
132
+ let result = text . substring ( index , endIndex ) ;
133
+ return result ;
134
+ }
135
+ }
136
+ return null ;
137
+ }
153
138
}
0 commit comments