@ file : Suppress (" unused ", Ġ" Member Visibility Can Be Private ") Ċ Ċ package Ġorg . do co pt Ċ Ċ import Ġk script . app . quit Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* Ġ@ author ĠHol ger ĠBrand l Ċ Ġ*/ Ċ Ċ /** ĠSimple ĠKotlin Ġfac ade Ġfor Ġorg . org . do co pt . Do co pt . Do co pt ( java . lang . String ) Ġ. */ Ċ class ĠDoc Opt Wrapper ( args : ĠIterable < String >, Ġusage : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġparsed Args : ĠMutable Map < String , ĠAny > Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ ĠDo co pt ( usage ). with Exit ( false ). parse ( args . toList ()) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠDo co pt Exit Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġm imic Ġdo co pts Ġexit Ġbehavior Ġbut Ġusing Ġprocess - subst itu ion Ġhandler Ġat Ġthe Ġend ĊĠĠĠĠĠĠĠ Ġval Ġps Ġ= ĠSystem . err ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġe . message ĊĊĠĠĠĠĠĠĠ Ġif Ġ( message Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġps . println ( message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( e . print Usage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġps . println ( usage ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġquit ( e . exit Code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmy DO Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġparsed Args . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . key . remove Prefix ("-- "). replace ("[ < >] ". to Regex (), Ġ"") Ġto Ġit . value ĊĠĠĠĠĠĠĠ Ġ}. toMap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString ( key : ĠString ) Ġ= Ġmy DO [ key ] !!. toString () ĊĠĠĠ Ġfun Ġget Strings ( key : ĠString ) Ġ= Ġ( my DO [ key ] !! Ġas ĠList < *> ). map Ġ{ Ġit Ġas ĠString Ġ} ĊĊĠĠĠ Ġfun ĠgetFile ( key : ĠString ) Ġ= ĠFile ( getString ( key )) ĊĠĠĠ Ġfun Ġget Files ( key : ĠString ) Ġ= Ġget Strings ( key ). map Ġ{ ĠFile ( it ) Ġ} ĊĊĊĠĠĠ Ġfun Ġget Int ( key : ĠString ) Ġ= Ġmy DO [ key ] !!. toString (). toInt () ĊĊĠĠĠ Ġfun Ġget Number ( key : ĠString ) Ġ= Ġmy DO [ key ] !!. toString (). toFloat () ĊĊĠĠĠ Ġfun Ġget Boolean ( key : ĠString ) Ġ= Ġmy DO [ key ] !!. toString (). to Boolean () ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġparsed Args . toString () ĊĠĠĠ Ġ} Ċ } Ċ