@@ -12,9 +12,12 @@ import { createServer as doCreateServer, IServerAPI } from 'vs/server/remoteExte
12
12
import { parseArgs , ErrorReporter } from 'vs/platform/environment/node/argv' ;
13
13
import { join , dirname } from 'vs/base/common/path' ;
14
14
import { performance } from 'perf_hooks' ;
15
- import { serverOptions } from 'vs/server/serverEnvironmentService' ;
15
+ import { serverOptions , ServerParsedArgs } from 'vs/server/serverEnvironmentService' ;
16
16
import * as perf from 'vs/base/common/performance' ;
17
17
18
+ // NOTE@coder : We already have the arguments so this file has been patched to
19
+ // support passing them in.
20
+
18
21
perf . mark ( 'code/server/codeLoaded' ) ;
19
22
( < any > global ) . vscodeServerCodeLoadedTime = performance . now ( ) ;
20
23
@@ -28,37 +31,43 @@ const errorReporter: ErrorReporter = {
28
31
}
29
32
} ;
30
33
31
- const args = parseArgs ( process . argv . slice ( 2 ) , serverOptions , errorReporter ) ;
34
+ function parse ( ) {
35
+ return parseArgs ( process . argv . slice ( 2 ) , serverOptions , errorReporter ) ;
36
+ }
32
37
33
38
const REMOTE_DATA_FOLDER = process . env [ 'VSCODE_AGENT_FOLDER' ] || join ( os . homedir ( ) , '.vscode-remote' ) ;
34
39
const USER_DATA_PATH = join ( REMOTE_DATA_FOLDER , 'data' ) ;
35
40
const APP_SETTINGS_HOME = join ( USER_DATA_PATH , 'User' ) ;
36
41
const GLOBAL_STORAGE_HOME = join ( APP_SETTINGS_HOME , 'globalStorage' ) ;
37
42
const MACHINE_SETTINGS_HOME = join ( USER_DATA_PATH , 'Machine' ) ;
38
- args [ 'user-data-dir' ] = USER_DATA_PATH ;
39
43
const APP_ROOT = dirname ( FileAccess . asFileUri ( '' , require ) . fsPath ) ;
40
44
const BUILTIN_EXTENSIONS_FOLDER_PATH = join ( APP_ROOT , 'extensions' ) ;
41
- args [ 'builtin-extensions-dir' ] = BUILTIN_EXTENSIONS_FOLDER_PATH ;
42
- args [ 'extensions-dir' ] = args [ 'extensions-dir' ] || join ( REMOTE_DATA_FOLDER , 'extensions' ) ;
43
45
44
- [ REMOTE_DATA_FOLDER , args [ 'extensions-dir' ] , USER_DATA_PATH , APP_SETTINGS_HOME , MACHINE_SETTINGS_HOME , GLOBAL_STORAGE_HOME ] . forEach ( f => {
45
- try {
46
- if ( ! fs . existsSync ( f ) ) {
47
- fs . mkdirSync ( f ) ;
48
- }
49
- } catch ( err ) { console . error ( err ) ; }
50
- } ) ;
46
+ export function createDirs ( args : ServerParsedArgs ) {
47
+ args [ 'user-data-dir' ] = args [ 'user-data-dir' ] || USER_DATA_PATH ;
48
+ args [ 'builtin-extensions-dir' ] = args [ 'builtin-extensions-dir' ] || BUILTIN_EXTENSIONS_FOLDER_PATH ;
49
+ args [ 'extensions-dir' ] = args [ 'extensions-dir' ] || join ( REMOTE_DATA_FOLDER , 'extensions' ) ;
50
+ [ REMOTE_DATA_FOLDER , args [ 'extensions-dir' ] , USER_DATA_PATH , APP_SETTINGS_HOME , MACHINE_SETTINGS_HOME , GLOBAL_STORAGE_HOME ] . forEach ( f => {
51
+ try {
52
+ if ( ! fs . existsSync ( f ) ) {
53
+ fs . mkdirSync ( f ) ;
54
+ }
55
+ } catch ( err ) { console . error ( err ) ; }
56
+ } ) ;
57
+ }
51
58
52
59
/**
53
60
* invoked by vs/server/main.js
54
61
*/
55
- export function spawnCli ( ) {
56
- runCli ( args , REMOTE_DATA_FOLDER ) ;
62
+ export function spawnCli ( args : ServerParsedArgs = parse ( ) ) : Promise < void > {
63
+ createDirs ( args )
64
+ return runCli ( args , args [ "user-data-dir" ] || REMOTE_DATA_FOLDER ) ;
57
65
}
58
66
59
67
/**
60
68
* invoked by vs/server/main.js
61
69
*/
62
- export function createServer ( address : string | net . AddressInfo | null ) : Promise < IServerAPI > {
63
- return doCreateServer ( address , args , REMOTE_DATA_FOLDER ) ;
70
+ export function createServer ( address : string | net . AddressInfo | null , args : ServerParsedArgs = parse ( ) ) : Promise < IServerAPI > {
71
+ createDirs ( args )
72
+ return doCreateServer ( address , args , args [ "user-data-dir" ] || REMOTE_DATA_FOLDER ) ;
64
73
}
0 commit comments