package Ġp ink . mad is . gradle . local props Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . nio . charset . StandardCharsets Ċ import Ġjava . util . Properties Ċ Ċ class ĠLocal Properties Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠ Ġval Ġprops File Ġ= Ġproject . file (" local . properties ") ĊĊĠĠĠ Ġval Ġmap Ġ= Ġmutable Map Of < String , ĠString >() ĊĊĠĠĠ Ġif Ġ( props File . exists ()) Ġ{ ĊĠĠĠĠĠ Ġval Ġprops Ġ= ĠProperties () ĊĠĠĠĠĠ Ġprops File . reader ( StandardCharsets . UTF _ 8 ). use Ġ{ Ġreader Ġ-> ĊĠĠĠĠĠĠĠ Ġprops . load ( reader ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġprops . forEach Ġ{ Ġkey , Ġvalue Ġ-> ĊĠĠĠĠĠĠĠ Ġmap . put ( key . toString (), Ġvalue . toString ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġproject . extensions . add (" local props ", ĠLocal Properties ( map , Ġproject )) ĊĠ Ġ} Ċ } Ċ Ċ class ĠLocal Properties ( ĊĠĠĠ Ġinternal Ġval Ġprops : ĠMap < String , ĠString >, ĊĠĠĠ Ġinternal Ġval Ġproject : ĠProject ) Ġ: ĠMap < String , ĠString > Ġby Ġprops Ġ{ ĊĊĠ Ġ@ Suppress (" unused ") ĊĠ Ġfun Ġfile ( key : ĠString ) Ġ= Ġprops [ key ]?. let Ġ{ Ġproject . file ( it ) Ġ} Ċ }