/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . build . studio Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ import Ġjava . nio . file . Paths Ċ Ċ /** Ċ Ġ* ĠFunction Ġto Ġplace Ġthe Ġrequired Ġstudio Ġarchive Ġat Ġdestination Path , Ġin Ġpreparation Ġfor Ċ Ġ* Ġextracting Ġlater . Ċ Ġ*/ Ċ type alias ĠStudio Archive Creator Ġ= Ġ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġstudio Version : ĠString , ĊĠĠĠ Ġfilename : ĠString , ĊĠĠĠ Ġdestination Path : ĠString Ċ ) Ġ-> ĠUnit Ċ Ċ /** Ċ Ġ* ĠDown loads Ġa ĠStudio Ġarchive Ġfrom Ġthe Ġofficial Ġdownload ĠURL , Ġand Ġplaces Ġit Ġat Ġdestination Path . Ċ Ġ*/ Ċ val ĠUrl Archive Creator : ĠStudio Archive Creator Ġ= Ġfun Ġ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġstudio Version : ĠString , ĊĠĠĠ Ġfilename : ĠString , ĊĠĠĠ Ġdestination Path : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġval Ġurl Ġ= Ġ" https :// dl . google . com / dl / android / studio / ide - zip s /$ studio Version /$ filename " ĊĊĠĠĠ Ġval Ġtmp Download Path Ġ= ĠFile ("$ destination Path . tmp "). absolute Path ĊĊĠĠĠ Ġprintln (" Downloading Ġ$ url Ġto Ġ$ tmp Download Path ") ĊĠĠĠ Ġproject . exec Ġ{ Ġexec Spec Ġ-> ĊĠĠĠĠĠĠĠ Ġwith ( exec Spec ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutable (" curl ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs ( url , Ġ"-- output ", Ġtmp Download Path ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠRename s Ġtemp Ġarchive Ġto Ġthe Ġfinal Ġarchive Ġname ĊĠĠĠ ĠFiles . move ( Paths . get ( tmp Download Path ), ĠPaths . get ( destination Path )) Ċ } Ċ