// ĠCopyright Ġ 2 0 0 0 - 2 0 1 9 ĠJetBrains Ġs . r . o . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ package Ġcom . jetbrains . python . tools Ċ Ċ import Ġcom . intellij . idea . Ide a Test Application Ċ import Ġcom . intellij . openapi . vfs . V fs Util Ċ import Ġcom . intellij . util . io . Compressor Ċ import Ġcom . jetbrains . python . sdk . Python Sdk Util Ċ import Ġcom . jetbrains . python . sdk . s ke letons . Default P regener ated S ke letons Provider Ċ import Ġcom . jetbrains . python . sdk . s ke letons . Py Skeleton Refresh er Ċ import Ġcom . jetbrains . python . tools . sdk Tools . Py Sdk Tools Ċ import Ġcom . jetbrains . python . tools . sdk Tools . Sdk Creation Type Ċ import Ġjava . io . File Ċ import Ġkotlin . math . abs Ċ import Ġkotlin . system . exit Process Ċ Ċ /** Ċ Ġ* Ġ@ author Ġtr aff Ċ Ġ*/ Ċ Ċ const Ġval ĠPY CHAR M _ PYTHON S : ĠString Ġ= Ġ" PY CHAR M _ PYTHON S " Ċ Ċ fun Ġmain () Ġ{ ĊĠ Ġprintln (" Starting Ġbuild Ġprocess ") ĊĠ Ġval Ġapp Ġ= ĠIde a Test Application . getInstance () ĊĠ Ġprintln (" App Ġstarted : Ġ${ app }") ĊĊĠ Ġtry Ġ{ ĊĠĠĠ Ġval Ġroot Ġ= ĠSystem . getenv ( PY CHAR M _ PYTHON S ) ĊĠĠĠ Ġval Ġworking Dir Ġ= ĠSystem . getProperty (" user . dir ") ĊĠĠĠ Ġval Ġcache Dir Ġ= ĠFile ( working Dir , Ġ" cache ") ĊĠĠĠ Ġprintln (" S ke letons Ġwill Ġshare Ġa Ġcommon Ġcache Ġat Ġ$ cacheDir ") ĊĊĠĠĠ Ġfor Ġ( python Ġin ĠFile ( root ). list Files () !! ) Ġ{ ĊĠĠĠĠĠ Ġprintln (" Running Ġon Ġ$ python ") ĊĊĠĠĠĠĠ Ġval Ġexecutable Ġ= ĠPython Sdk Util . get Python Executable ( python . absolute Path ) !! ĊĠĠĠĠĠ Ġval Ġsdk Ġ= ĠPy Sdk Tools . create Temp Sdk ( V fs Util . find File By Io File ( File ( executable ), Ġtrue ) !! , ĠS dk Creation Type . SDK _ PACK AGES _ ONLY , Ġnull ) ĊĊĠĠĠĠĠ Ġval Ġs ke letons Dir Ġ= ĠFile ( working Dir , Ġ" s ke letons -${ sdk . version String !!. replace (" Ġ", Ġ"_ ") }_ " Ġ+ Ġabs ( sdk . home Path !!. hashCode ())) ĊĠĠĠĠĠ Ġprintln (" Generating Ġs ke letons Ġin Ġ${ s ke letons Dir . absolute Path }") ĊĊĠĠĠĠĠ Ġval Ġrefresh er Ġ= ĠPy Skeleton Refresh er ( null , Ġnull , Ġsdk , Ġs ke letons Dir . absolute Path , Ġnull , Ġnull ) ĊĠĠĠĠĠ Ġrefresh er . generator ĊĠĠĠĠĠĠĠ Ġ. command Builder () ĊĠĠĠĠĠĠĠ Ġ. in Pre building Mode () ĊĠĠĠĠĠĠĠ Ġ. run Generation ( null ) ĊĊĠĠĠĠĠ Ġval Ġartifact Name Ġ= ĠDefault P regener ated S ke letons Provider . getP regener ated S ke letons Name ( sdk , Ġrefresh er . generator Version , Ġtrue , Ġtrue ) ĊĠĠĠĠĠ Ġval Ġdir Packed Ġ= ĠFile ( s ke letons Dir . parent , Ġartifact Name !! ) ĊĠĠĠĠĠ Ġprintln (" Creating Ġartifact Ġ$ dir Packed ") ĊĠĠĠĠĠ ĠCompress or . Zip ( dir Packed ). use Ġ{ Ġit . add Directory ( s ke letons Dir ) Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠ Ġe . printStackTrace () ĊĠĠĠ Ġexit Process ( 1 ) ĊĠ Ġ} ĊĠ Ġfinally Ġ{ ĊĠĠĠ Ġexit Process ( 0 ) Ġ// TODO : Ġa Ġgrace ful Ġexit ? ĊĠ Ġ} Ċ }