import Ġcom . github . aj alt . cli kt . core . Cli kt Command Ċ import Ġcom . github . aj alt . cli kt . parameters . options . default Ċ import Ġcom . github . aj alt . cli kt . parameters . options . option Ċ import Ġcom . tr af i . mam mo th . Code Generator Ċ import Ġcom . tr af i . mam mo th . Schema Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . Request Ċ import Ġjava . io . File Ċ import Ġjava . io . FileWriter Ċ import Ġjava . io . IOException Ċ import Ġjava . net . Socket TimeoutException Ċ Ċ class ĠM am mo th Ġ: ĠCli kt Command () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġproject : ĠString Ġby Ġoption ( help Ġ= Ġ" M am mo th Ġproject Ġid "). default (" wh itel abel ") ĊĠĠĠ Ġprivate Ġval Ġversion : ĠString Ġby Ġoption ( help Ġ= Ġ" M am mo th Ġschema Ġversion "). default ("") ĊĠĠĠ Ġprivate Ġval Ġoutput Path : ĠString Ġby Ġoption ( help Ġ= Ġ" Generated Ġschema Ġcode Ġoutput Ġpath "). default ("") ĊĠĠĠ Ġprivate Ġval Ġoutput Filename : ĠString Ġby Ġoption ( help Ġ= Ġ" Generated Ġschema Ġcode Ġoutput Ġfile Ġname "). default (" M am mo th Events . kt ") ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// mam mo th . tr af i . com /$ project / schema /$ version " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Downloading Ġschema Ġfrom Ġ$ url " Ġelse Ġ" H unting Ġfor Ġm am mo ths Ġat Ġ$ url ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema Json String Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOk HttpClient (). new Call ( Request . Builder (). url ( url ). build ()). execute (). use Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . code Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIOException ("${ response . code } Ġ${ response . message }\ n ${ response . body ?. string (). or Empty () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . body ?. string () Ġ?: Ġthrow ĠIOException ("${ response . code } Ġ${ response . message } Ġwith Ġempty Ġbody ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Parsing Ġschema " Ġelse Ġ" G room ing Ġm am mo th ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġignore Unknown Keys Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġjson . decode FromString < Schema >( schema Json String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Generating Ġcode " Ġelse Ġ" Cook ing Ġk ot let ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= ĠCode Generator . generate Code ( schema ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( output Path ). resolve ( output Filename ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Writing Ġgenerated Ġcode Ġto Ġ$ file " Ġelse Ġ" Ser ving Ġhot Ġk ot let Ġat Ġ$ file ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Writer ( file ). use Ġ{ Ġit . write ( code ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Success " Ġelse Ġ" V ictory ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġecho ( if Ġ( business ) Ġ" Error : Ġ$ e " Ġelse Ġ" O ops , Ġsomething Ġwent Ġwrong : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġis ĠSocket TimeoutException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġecho (" Please Ġmake Ġsure Ġyou Ġare Ġconnected Ġto Ġthe ĠTr af i ĠVPN ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ= ĠM am mo th (). main ( args ) Ċ Ċ /** Ċ Ġ* ĠReal Ġbusiness Ġor Ġjust Ġcas ual . Ċ Ġ*/ Ċ private Ġval Ġbusiness Ġget () Ġ= ĠMath . random () Ġ< Ġ 0 . 9 Ċ