#!/ usr / bin / env Ġkotlin Ċ Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ Ċ / **************************************** ******* Ċ Ġ* ĠDESCRIPTION : Ċ Ġ* Ġ----------- Ċ Ġ* ĠWill Ġfind Ġnext Ġpatched Ġversion Ġwhen Ġgiven Ġa Ġsemantic - version Ċ Ġ*/ Ċ object ĠArgument Ġ{ ĊĠĠĠ Ġconst Ġval ĠS EM VER Ġ= Ġ" semver " Ċ } Ċ Ċ object ĠConstants Ġ{ ĊĠĠĠ Ġconst Ġval ĠENV IRONMENT _ IS _ DEBUG Ġ= Ġ" IS _ DEBUG " ĊĠĠĠ Ġconst Ġval ĠFILE _ NAME _ NEW _ SEM _ VER Ġ= Ġ" new Sem Ver " ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠS CRIPT _ FILE _ NAME Ġ= Ġ" new - semver . main . k ts " ĊĊĠĠĠ Ġval ĠERROR _ MESSAGE Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ>>> ĠERROR Ġ<<< ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUsage : Ġ$ SCRIPT _ FILE _ NAME Ġ< mapped Ġargs , Ġie : Ġ${ Argument . SEM VER } =? < ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- Ġex : Ġ./ $ SCRIPT _ FILE _ NAME Ġ${ Argument . SEM VER }= 2 . 0 . 1 5 ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () Ċ } Ċ Ċ val Ġis Debug Ġ= ĠSystem . getenv ( Constants . ENVIRONMENT _ IS _ DEBUG )?. to Boolean () Ġ?: Ġfalse Ċ val Ġall Args Ġ= Ġargs . join ToString (" Ġ") Ċ Ċ debug Message (" all Ġargs : Ġ$ all Args ") Ċ Ċ if Ġ( args . size Ġ!= Ġ 1 ) Ġ{ ĊĠĠĠ Ġthrow ĠIllegalArgumentException ( err Msg (" Input Ġargument Ġrequired ! ")) Ċ } Ċ Ċ val Ġinputs Ġ= Ġall Args . split ( Regex (" Ġ")) Ċ val Ġcommands : ĠMutable Map < String , ĠString > Ġ= ĠHashMap () Ċ Ċ inputs . filter Ġ{ Ġit . contains (' =') Ġ}. filter Ġ{ Ġ! it . endsWith (' =') Ġ}. forEach Ġ{ ĊĠĠĠ Ġval Ġkey Ġ= Ġit . split (" =" )[ 0 ] ĊĠĠĠ Ġval Ġvalue Ġ= Ġit . split (" =" )[ 1 ] ĊĠĠĠ Ġcommands [ key ] Ġ= Ġvalue Ċ } Ċ Ċ debug Message (" map Ġargs : Ġ$ commands ") Ċ Ċ // Ġread Ġarguments Ċ val Ġsemantic Version Ġ= Ġcommands [ Argument . SEM VER ] Ġ?: Ġthrow ĠIllegalArgumentException ( err Msg ("${ Argument . SEM VER } Ġargument Ġis Ġnot Ġsupplied ! ")) Ċ Ċ val Ġnew Semantic Version Ġ= Ġcreate New Semantic Version () Ċ val Ġsem Ver File Ġ= ĠFile ( Constants . FILE _ NAME _ NEW _ SEM _ VER ) Ċ Ċ Files . write ( sem Ver File . to Path (), Ġnew Semantic Version . toByteArray ()) Ċ Ċ fun ĠerrMsg ( message : ĠString ): ĠString Ġ= ĠConstants . ERROR _ MESSAGE . replace (" {}", Ġmessage ) Ċ fun Ġcreate New Semantic Version (): ĠString Ġ{ ĊĠĠĠ Ġdebug Message (" creating Ġnew Ġsemantic Ġversion Ġfrom Ġgiven Ġsemantic Ġversion Ġ($ semantic Version )") ĊĊĠĠĠ Ġval Ġlast IndexOf Dot Ġ= Ġsemantic Version . lastIndexOf ('.') ĊĠĠĠ Ġval Ġmajor Minor Version Ġ= Ġsemantic Version . substring ( 0 , Ġlast IndexOf Dot ) ĊĠĠĠ Ġval Ġcurrent Patch Version Ġ= Ġsemantic Version . substring ( lastIndexOf Dot Ġ+ Ġ 1 ). toInt () ĊĊĠĠĠ Ġreturn Ġ"$ major Minor Version .${ current Patch Version Ġ+ Ġ 1 }" Ċ } Ċ Ċ fun Ġdebug Message ( message : ĠString ) Ġ{ ĊĠĠĠ Ġif Ġ( isDebug ) Ġprintln ( message ) Ċ } Ċ