@@ -18,6 +18,51 @@ 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
20
let lt_config = JSON . parse ( rawdata ) ;
21
+ let usernameFromEnvFile = undefined ;
22
+ let accessKeyFromEnvFile = undefined ;
23
+ let envFile , parsedEnv ;
24
+ let dot_env_vars = undefined ;
25
+ let envFilePath = path . join ( "." , `.env` ) ;
26
+ if ( "sys-env-keys" in args ) {
27
+ dot_env_vars = args [ "sys-env-keys" ] ;
28
+ } else if ( lt_config [ "run_settings" ] && lt_config [ "run_settings" ] [ "sys_env_keys" ] ) {
29
+ dot_env_vars = lt_config [ "run_settings" ] [ "sys_env_keys" ] ;
30
+ }
31
+ if ( dot_env_vars ) {
32
+ dot_env_vars = dot_env_vars . trim ( ) ;
33
+ dot_env_vars = dot_env_vars . split ( "," ) ;
34
+ if ( "envfl" in args ) {
35
+ envFilePath = args [ "envfl" ] ;
36
+ } else if ( lt_config [ "run_settings" ] [ "env_file" ] ) {
37
+ envFilePath = lt_config [ "run_settings" ] [ "env_file" ] ;
38
+ }
39
+
40
+ try {
41
+ envFile = fs . readFileSync ( envFilePath , { encoding : 'utf8' } )
42
+ parsedEnv = dotenv . parse ( envFile )
43
+ for ( index in dot_env_vars ) {
44
+ let envKey = dot_env_vars [ index ]
45
+ if ( envKey == constants . LT_USERNAME_ENV ) {
46
+ let envValue = parsedEnv [ envKey ]
47
+ if ( envValue ) {
48
+ usernameFromEnvFile = envValue
49
+ } else {
50
+ console . error ( `value of username is not set in .env file.` )
51
+ }
52
+
53
+ } else if ( envKey == constants . LT_ACCESS_KEY_ENV ) {
54
+ let envValue = parsedEnv [ envKey ]
55
+ if ( envValue ) {
56
+ accessKeyFromEnvFile = envValue
57
+ } else {
58
+ console . error ( `value of access key is not set in .env file.` )
59
+ }
60
+ }
61
+ }
62
+ } catch ( err ) {
63
+ console . error ( "error in fetching environment variables from .env file" , err ) ;
64
+ }
65
+ }
21
66
22
67
if (
23
68
"lambdatest_auth" in lt_config &&
@@ -31,6 +76,17 @@ function sync_args_from_cmd(args) {
31
76
) ;
32
77
lt_config [ "lambdatest_auth" ] [ "username" ] = process . env . LT_USERNAME ;
33
78
}
79
+ } else if ( usernameFromEnvFile &&
80
+ ( ! ( "lambdatest_auth" in lt_config ) ||
81
+ ! ( "username" in lt_config [ "lambdatest_auth" ] ) ) ) {
82
+ console . log (
83
+ "Setting user name from .env file" ,
84
+ usernameFromEnvFile
85
+ ) ;
86
+ if ( ! lt_config [ "lambdatest_auth" ] ) {
87
+ lt_config [ "lambdatest_auth" ] = { } ;
88
+ }
89
+ lt_config [ "lambdatest_auth" ] [ "username" ] = usernameFromEnvFile ;
34
90
} else if (
35
91
process . env . LT_USERNAME &&
36
92
( ! ( "lambdatest_auth" in lt_config ) ||
@@ -58,6 +114,14 @@ function sync_args_from_cmd(args) {
58
114
console . log ( "setting access key from environment" ) ;
59
115
lt_config [ "lambdatest_auth" ] [ "access_key" ] = process . env . LT_ACCESS_KEY ;
60
116
}
117
+ } else if ( accessKeyFromEnvFile &&
118
+ ( ! ( "lambdatest_auth" in lt_config ) ||
119
+ ! ( "access_key" in lt_config [ "lambdatest_auth" ] ) ) ) {
120
+ if ( ! lt_config [ "lambdatest_auth" ] ) {
121
+ lt_config [ "lambdatest_auth" ] = { } ;
122
+ }
123
+ console . log ( "Setting access key from .env file" ) ;
124
+ lt_config [ "lambdatest_auth" ] [ "access_key" ] = accessKeyFromEnvFile ;
61
125
} else if (
62
126
process . env . LT_ACCESS_KEY &&
63
127
( ! ( "lambdatest_auth" in lt_config ) ||
@@ -386,26 +450,9 @@ function sync_args_from_cmd(args) {
386
450
}
387
451
}
388
452
}
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
-
453
+
454
+ if ( dot_env_vars ) {
406
455
try {
407
- envFile = fs . readFileSync ( envFilePath , { encoding : 'utf8' } )
408
- parsedEnv = dotenv . parse ( envFile )
409
456
for ( index in dot_env_vars ) {
410
457
let envKey = dot_env_vars [ index ]
411
458
let envValue = parsedEnv [ envKey ]
0 commit comments