package Ġby . e gor r . gradle . kt se xec Ċ Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . file . Regular File Property Ċ import Ġorg . gradle . api . tasks . Input File Ċ import Ġorg . gradle . api . tasks . Skip When Empty Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġorg . gradle . api . tasks . Task ExecutionException Ċ import Ġjava . io . IOException Ċ Ċ const Ġval ĠK TS _ EXEC _ CONFIGURATION _ NAME Ġ= Ġ" k ts Exec Configuration " Ċ private Ġconst Ġval ĠHOST _ VERSION Ġ= Ġ" 1 . 1 . 0 " Ċ Ċ @ Suppress (" Un stable Api Usage ") Ċ open Ġclass ĠK ts Exec Ġ: ĠDefault Task () Ġ{ ĊĠĠĠ Ġ@ get : Skip When Empty ĊĠĠĠ Ġ@ get : Input File ĊĠĠĠ Ġval Ġscript : ĠRegular File Property Ġ= Ġproject . objects . file Property () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . configurations . maybe Create ( K TS _ EXEC _ CONFIGURATION _ NAME ) ĊĠĠĠĠĠĠĠ Ġwith ( project . dependencies ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK TS _ EXEC _ CONFIGURATION _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" by . e gor r . gradle : kt se xec - host :$ HOST _ VERSION " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġrun Script () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( script . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġscript File Ġ= Ġscript . get (). as File ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( script File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . java exec Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . classpath Ġ= Ġproject . configurations . get ByName ( K TS _ EXEC _ CONFIGURATION _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . main Ġ= Ġ" by . e gor r . gradle . kt se xec . host . K ts Exec Kotlin Script Host " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . args Ġ= ĠlistOf ( script File . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . standard Input Ġ= ĠSystem .` in ` ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠTask ExecutionException ( this , ĠIOException (" Provided Ġscript Ġfile Ġ$ script File Ġis Ġnot Ġavailable ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" No Ġscript Ġfile Ġwas Ġprovided !") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ