@@ -18,6 +18,51 @@ function sync_args_from_cmd(args) {
1818 return new Promise ( function ( resolve , reject ) {
1919 let rawdata = fs . readFileSync ( args [ "lambdatest-config-file" ] ) ;
2020 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+ }
2166
2267 if (
2368 "lambdatest_auth" in lt_config &&
@@ -31,6 +76,17 @@ function sync_args_from_cmd(args) {
3176 ) ;
3277 lt_config [ "lambdatest_auth" ] [ "username" ] = process . env . LT_USERNAME ;
3378 }
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 ;
3490 } else if (
3591 process . env . LT_USERNAME &&
3692 ( ! ( "lambdatest_auth" in lt_config ) ||
@@ -58,6 +114,14 @@ function sync_args_from_cmd(args) {
58114 console . log ( "setting access key from environment" ) ;
59115 lt_config [ "lambdatest_auth" ] [ "access_key" ] = process . env . LT_ACCESS_KEY ;
60116 }
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 ;
61125 } else if (
62126 process . env . LT_ACCESS_KEY &&
63127 ( ! ( "lambdatest_auth" in lt_config ) ||
@@ -386,26 +450,9 @@ function sync_args_from_cmd(args) {
386450 }
387451 }
388452 }
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 ) {
406455 try {
407- envFile = fs . readFileSync ( envFilePath , { encoding : 'utf8' } )
408- parsedEnv = dotenv . parse ( envFile )
409456 for ( index in dot_env_vars ) {
410457 let envKey = dot_env_vars [ index ]
411458 let envValue = parsedEnv [ envKey ]
0 commit comments