@@ -117,80 +117,71 @@ async function main() {
117
117
}
118
118
if ( ( server . type === "http" || server . type === "sse" ) && server . headers ) {
119
119
for ( const [ key , value ] of Object . entries ( server . headers ) ) {
120
- if ( value . includes ( envSpecialValue ) ) {
120
+ if ( value === envSpecialValue ) {
121
121
inputVars . add ( key ) ;
122
122
}
123
123
}
124
124
}
125
125
}
126
126
127
+ if ( config . apiKey ?. includes ( envSpecialValue ) ) {
128
+ inputVars . add ( "apiKey" ) ;
129
+ }
130
+
127
131
if ( inputVars . size === 0 ) {
128
132
stdout . write ( ANSI . YELLOW ) ;
129
- stdout . write ( `Input ${ inputId } defined in config but not used by any server.` ) ;
133
+ stdout . write ( `Input ${ inputId } defined in config but not used by any server or as an API key. Skipping .` ) ;
130
134
stdout . write ( ANSI . RESET ) ;
131
135
stdout . write ( "\n" ) ;
132
136
continue ;
133
137
}
134
-
135
- // Prompt user for input
136
138
const envVariableKey = inputId . replaceAll ( "-" , "_" ) . toUpperCase ( ) ;
139
+ // Prompt user for input
137
140
stdout . write ( ANSI . BLUE ) ;
138
141
stdout . write ( ` • ${ inputId } ` ) ;
139
142
stdout . write ( ANSI . RESET ) ;
140
143
stdout . write ( `: ${ description } . (default: load from ${ envVariableKey } ) ` ) ;
141
144
stdout . write ( "\n" ) ;
142
145
143
146
const userInput = ( await rl . question ( "" ) ) . trim ( ) ;
147
+ const valueFromEnv = process . env [ envVariableKey ] || "" ;
148
+ const finalValue = userInput || valueFromEnv ;
149
+
150
+ if ( ! userInput ) {
151
+ if ( valueFromEnv ) {
152
+ stdout . write ( ANSI . GREEN ) ;
153
+ stdout . write ( `Value successfully loaded from '${ envVariableKey } '` ) ;
154
+ stdout . write ( ANSI . RESET ) ;
155
+ stdout . write ( "\n" ) ;
156
+ } else {
157
+ stdout . write ( ANSI . YELLOW ) ;
158
+ stdout . write ( `No value found for '${ envVariableKey } ' in environment variables. Continuing.` ) ;
159
+ stdout . write ( ANSI . RESET ) ;
160
+ stdout . write ( "\n" ) ;
161
+ }
162
+ }
144
163
145
164
// Inject user input (or env variable) into servers' env
146
165
for ( const server of config . servers ) {
147
166
if ( server . type === "stdio" && server . env ) {
148
167
for ( const [ key , value ] of Object . entries ( server . env ) ) {
149
168
if ( value === envSpecialValue ) {
150
- if ( userInput ) {
151
- server . env [ key ] = userInput ;
152
- } else {
153
- const valueFromEnv = process . env [ envVariableKey ] || "" ;
154
- server . env [ key ] = valueFromEnv ;
155
- if ( valueFromEnv ) {
156
- stdout . write ( ANSI . GREEN ) ;
157
- stdout . write ( `Value successfully loaded from '${ envVariableKey } '` ) ;
158
- stdout . write ( ANSI . RESET ) ;
159
- stdout . write ( "\n" ) ;
160
- } else {
161
- stdout . write ( ANSI . YELLOW ) ;
162
- stdout . write ( `No value found for '${ envVariableKey } ' in environment variables. Continuing.` ) ;
163
- stdout . write ( ANSI . RESET ) ;
164
- stdout . write ( "\n" ) ;
165
- }
166
- }
169
+ server . env [ key ] = value . replace ( envSpecialValue , finalValue ) ;
167
170
}
168
171
}
169
172
}
170
173
if ( ( server . type === "http" || server . type === "sse" ) && server . headers ) {
171
174
for ( const [ key , value ] of Object . entries ( server . headers ) ) {
172
- if ( value . includes ( envSpecialValue ) ) {
173
- if ( userInput ) {
174
- server . headers [ key ] = value . replace ( envSpecialValue , userInput ) ;
175
- } else {
176
- const valueFromEnv = process . env [ envVariableKey ] || "" ;
177
- server . headers [ key ] = value . replace ( envSpecialValue , valueFromEnv ) ;
178
- if ( valueFromEnv ) {
179
- stdout . write ( ANSI . GREEN ) ;
180
- stdout . write ( `Value successfully loaded from '${ envVariableKey } '` ) ;
181
- stdout . write ( ANSI . RESET ) ;
182
- stdout . write ( "\n" ) ;
183
- } else {
184
- stdout . write ( ANSI . YELLOW ) ;
185
- stdout . write ( `No value found for '${ envVariableKey } ' in environment variables. Continuing.` ) ;
186
- stdout . write ( ANSI . RESET ) ;
187
- stdout . write ( "\n" ) ;
188
- }
189
- }
175
+ if ( value === envSpecialValue ) {
176
+ server . headers [ key ] = value . replace ( envSpecialValue , finalValue ) ;
190
177
}
191
178
}
192
179
}
193
180
}
181
+
182
+ if ( config . apiKey ?. includes ( envSpecialValue ) ) {
183
+ config . apiKey = config . apiKey . replace ( envSpecialValue , finalValue ) ;
184
+ }
194
185
}
195
186
196
187
stdout . write ( "\n" ) ;
0 commit comments