@@ -182,6 +182,48 @@ fn inject_spring_boot(profile: &Option<String>) {
182182 }
183183 }
184184 }
185+ if let Some ( redis_url) = all_entries. get ( "spring.data.redis_url" ) {
186+ if !redis_url. is_empty ( ) {
187+ unsafe {
188+ env:: set_var ( "REDIS_URL" , redis_url) ;
189+ }
190+ }
191+ } else if let Some ( redis_host) = all_entries. get ( "spring.data.redis_host" ) {
192+ let redis_port = "6379" . to_string ( ) ;
193+ let redis_port = all_entries
194+ . get ( "spring.data.redis_port" )
195+ . unwrap_or ( & redis_port) ;
196+ let redis_db = "0" . to_string ( ) ;
197+ let redis_db = all_entries
198+ . get ( "spring.data.redis_database" )
199+ . unwrap_or ( & redis_db) ;
200+ let schema = "redis" . to_string ( ) ;
201+ let schema = if let Some ( redis_ssl) = all_entries. get ( "spring.data.redis.ssl.enabled" ) {
202+ if redis_ssl == "true" {
203+ "rediss" . to_string ( )
204+ } else {
205+ schema
206+ }
207+ } else {
208+ schema
209+ } ;
210+ let redis_user = all_entries. get ( "spring.data.redis.username" ) ;
211+ let redis_password = all_entries. get ( "spring.data.redis.password" ) ;
212+ let redis_url = if let Some ( redis_user) = redis_user {
213+ if let Some ( redis_password) = redis_password {
214+ format ! (
215+ "{schema}://{redis_user}:{redis_password}@{redis_host}:{redis_port}/{redis_db}"
216+ )
217+ } else {
218+ format ! ( "{schema}://{redis_user}@{redis_host}:{redis_port}/{redis_db}" )
219+ }
220+ } else {
221+ format ! ( "{schema}://{redis_host}:{redis_port}/{redis_db}" )
222+ } ;
223+ unsafe {
224+ env:: set_var ( "REDIS_URL" , redis_url) ;
225+ }
226+ }
185227 if let Some ( mongo_uri) = all_entries. get ( "spring.data.mongodb.uri" ) {
186228 if !mongo_uri. is_empty ( ) {
187229 unsafe {
0 commit comments