package Ġnet . cord a . node . internal . cord app Ċ Ċ import Ġcom . types afe . config . Config Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġnet . cord a . core . internal . create Directories Ċ import Ġnet . cord a . core . internal . div Ċ import Ġnet . cord a . core . internal . exists Ċ import Ġnet . cord a . core . internal . none Or Single Ċ import Ġnet . cord a . core . utilities . context Logger Ċ import Ġjava . nio . file . Path Ċ Ċ class ĠC ord app ConfigFile Provider ( cord app Directories : ĠList < Path >) Ġ: ĠC ord app Config Provider Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġcontext Logger () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġconfig Directories Ġ= Ġc ord app Directories . map Ġ{ Ġ( it Ġ/ Ġ" config "). create Directories () Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetConfig ByName ( name : ĠString ): ĠConfig Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠThere 's Ġnothing Ġstopping Ġthe Ġsame ĠCor D app Ġjar Ġfrom Ġocc uring Ġin Ġdifferent Ġdirectories Ġand Ġthus Ġcausing ĊĠĠĠĠĠĠĠ Ġ// Ġconflicts . ĠThe Ġc ord app Directories Ġlist Ġconfig Ġoption Ġshould Ġjust Ġbe Ġa Ġsingle Ġc ord app Directory ĊĠĠĠĠĠĠĠ Ġval Ġconfig File Ġ= Ġconfig Directories . map Ġ{ Ġit Ġ/ Ġ"$ name . conf " Ġ}. none Or Single Ġ{ Ġit . exists () Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( configFile Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Found Ġconfig Ġfor Ġc ord app Ġ$ name Ġin Ġ$ configFile ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Factory . parse File ( configFile . to File ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" No Ġconfig Ġfound Ġfor Ġc ord app Ġ$ name Ġin Ġ$ config Directories ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfig Factory . empty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ