@@ -17,7 +17,58 @@ function write_file(file_path, content) {
17
17
function sync_args_from_cmd ( args ) {
18
18
return new Promise ( function ( resolve , reject ) {
19
19
let rawdata = fs . readFileSync ( args [ "lambdatest-config-file" ] ) ;
20
- let lt_config = JSON . parse ( rawdata ) ;
20
+ let lt_config ;
21
+ try {
22
+ lt_config = JSON . parse ( rawdata ) ;
23
+ } catch ( err ) {
24
+ reject ( "error in parsing lambdatest-config-file" , err ) ;
25
+ }
26
+ let usernameFromEnvFile = undefined ;
27
+ let accessKeyFromEnvFile = undefined ;
28
+ let envFile , parsedEnv ;
29
+ let dot_env_vars = undefined ;
30
+ let dot_env_keys_list = undefined ;
31
+ let envFilePath = path . join ( "." , `.env` ) ;
32
+ if ( "sys-env-keys" in args ) {
33
+ dot_env_vars = args [ "sys-env-keys" ] ;
34
+ } else if ( lt_config [ "run_settings" ] && lt_config [ "run_settings" ] [ "sys_env_keys" ] ) {
35
+ dot_env_vars = lt_config [ "run_settings" ] [ "sys_env_keys" ] ;
36
+ }
37
+ if ( dot_env_vars ) {
38
+ dot_env_vars = dot_env_vars . trim ( ) ;
39
+ dot_env_keys_list = dot_env_vars . split ( "," ) ;
40
+ if ( "envfl" in args ) {
41
+ envFilePath = args [ "envfl" ] ;
42
+ } else if ( lt_config [ "run_settings" ] && lt_config [ "run_settings" ] [ "env_file" ] ) {
43
+ envFilePath = lt_config [ "run_settings" ] [ "env_file" ] ;
44
+ }
45
+
46
+ try {
47
+ envFile = fs . readFileSync ( envFilePath , { encoding : 'utf8' } )
48
+ parsedEnv = dotenv . parse ( envFile )
49
+ for ( index in dot_env_keys_list ) {
50
+ let envKey = dot_env_keys_list [ index ]
51
+ if ( envKey == constants . LT_USERNAME_ENV ) {
52
+ let envValue = parsedEnv [ envKey ]
53
+ if ( envValue ) {
54
+ usernameFromEnvFile = envValue
55
+ } else {
56
+ console . error ( `value of username is not set in .env file.` )
57
+ }
58
+
59
+ } else if ( envKey == constants . LT_ACCESS_KEY_ENV ) {
60
+ let envValue = parsedEnv [ envKey ]
61
+ if ( envValue ) {
62
+ accessKeyFromEnvFile = envValue
63
+ } else {
64
+ console . error ( `value of access key is not set in .env file.` )
65
+ }
66
+ }
67
+ }
68
+ } catch ( err ) {
69
+ console . error ( "error in fetching environment variables from .env file" , err ) ;
70
+ }
71
+ }
21
72
22
73
if (
23
74
"lambdatest_auth" in lt_config &&
@@ -31,6 +82,17 @@ function sync_args_from_cmd(args) {
31
82
) ;
32
83
lt_config [ "lambdatest_auth" ] [ "username" ] = process . env . LT_USERNAME ;
33
84
}
85
+ } else if ( usernameFromEnvFile &&
86
+ ( ! ( "lambdatest_auth" in lt_config ) ||
87
+ ! ( "username" in lt_config [ "lambdatest_auth" ] ) ) ) {
88
+ console . log (
89
+ "Setting user name from .env file" ,
90
+ usernameFromEnvFile
91
+ ) ;
92
+ if ( ! lt_config [ "lambdatest_auth" ] ) {
93
+ lt_config [ "lambdatest_auth" ] = { } ;
94
+ }
95
+ lt_config [ "lambdatest_auth" ] [ "username" ] = usernameFromEnvFile ;
34
96
} else if (
35
97
process . env . LT_USERNAME &&
36
98
( ! ( "lambdatest_auth" in lt_config ) ||
@@ -58,6 +120,14 @@ function sync_args_from_cmd(args) {
58
120
console . log ( "setting access key from environment" ) ;
59
121
lt_config [ "lambdatest_auth" ] [ "access_key" ] = process . env . LT_ACCESS_KEY ;
60
122
}
123
+ } else if ( accessKeyFromEnvFile &&
124
+ ( ! ( "lambdatest_auth" in lt_config ) ||
125
+ ! ( "access_key" in lt_config [ "lambdatest_auth" ] ) ) ) {
126
+ if ( ! lt_config [ "lambdatest_auth" ] ) {
127
+ lt_config [ "lambdatest_auth" ] = { } ;
128
+ }
129
+ console . log ( "Setting access key from .env file" ) ;
130
+ lt_config [ "lambdatest_auth" ] [ "access_key" ] = accessKeyFromEnvFile ;
61
131
} else if (
62
132
process . env . LT_ACCESS_KEY &&
63
133
( ! ( "lambdatest_auth" in lt_config ) ||
@@ -386,28 +456,11 @@ function sync_args_from_cmd(args) {
386
456
}
387
457
}
388
458
}
389
- let dot_env_vars = undefined ;
390
- if ( "sys-env-keys" in args ) {
391
- dot_env_vars = args [ "sys-env-keys" ] ;
392
- } else if ( lt_config [ "run_settings" ] && lt_config [ "run_settings" ] [ "sys_env_keys" ] ) {
393
- dot_env_vars = lt_config [ "run_settings" ] [ "sys_env_keys" ] ;
394
- }
395
- let parsedEnv , envFile ;
396
- let envFilePath = path . join ( "." , `.env` )
397
- if ( dot_env_vars ) {
398
- dot_env_vars = dot_env_vars . trim ( ) ;
399
- dot_env_vars = dot_env_vars . split ( "," ) ;
400
- if ( "envfl" in args ) {
401
- envFilePath = args [ "envfl" ] ;
402
- } else if ( lt_config [ "run_settings" ] [ "env_file" ] ) {
403
- envFilePath = lt_config [ "run_settings" ] [ "env_file" ] ;
404
- }
405
-
459
+
460
+ if ( dot_env_keys_list ) {
406
461
try {
407
- envFile = fs . readFileSync ( envFilePath , { encoding : 'utf8' } )
408
- parsedEnv = dotenv . parse ( envFile )
409
- for ( index in dot_env_vars ) {
410
- let envKey = dot_env_vars [ index ]
462
+ for ( index in dot_env_keys_list ) {
463
+ let envKey = dot_env_keys_list [ index ]
411
464
let envValue = parsedEnv [ envKey ]
412
465
envs [ envKey ] = envValue
413
466
}
0 commit comments