/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . descriptors . common izer . cli Ċ Ċ import Ġkotlin . system . exit Process Ċ Ċ internal Ġfun Ġparse Args ( ĊĠĠĠ Ġargs : ĠArray < String >, ĊĠĠĠ Ġprint Usage And Exit : Ġ( String ) Ġ-> ĠNothing Ċ ): ĠMap < String , ĠList < String >> Ġ{ ĊĠĠĠ Ġval Ġcommand Line Ġ= Ġmutable Map Of < String , ĠMutable List < String >>() ĊĠĠĠ Ġfor Ġ( index Ġin Ġargs . indices Ġstep Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġargs [ index ] ĊĠĠĠĠĠĠĠ Ġif Ġ( key [ 0 ] Ġ!= Ġ'-') Ġprint Usage And Exit (" Expected Ġa Ġflag Ġwith Ġinitial Ġdash : Ġ$ key ") ĊĠĠĠĠĠĠĠ Ġif Ġ( index Ġ+ Ġ 1 Ġ== Ġargs . size ) Ġprint Usage And Exit (" Expected Ġa Ġvalue Ġafter Ġ$ key ") ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġargs [ index Ġ+ Ġ 1 ] ĊĠĠĠĠĠĠĠ Ġcommand Line . compute If Absent ( key ) Ġ{ Ġmutable ListOf () Ġ}. add ( value ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcommand Line Ċ } Ċ Ċ internal Ġfun Ġprint Error And Exit ( errorMessage : ĠString ): ĠNothing Ġ{ ĊĠĠĠ Ġprintln (" Error : Ġ$ errorMessage ") ĊĠĠĠ Ġprintln () ĊĊĠĠĠ Ġexit Process ( 1 ) Ċ } Ċ