/** Ċ Ġ* ĠCopyright Ġ 2 0 1 0 Ġ- Ġ 2 0 1 9 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* Ġ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 Ġjet brains . ex od us . vfs Ċ Ċ import Ġjet brains . ex od us . env . Environments Ċ import Ġjava . nio . file . Paths Ċ import Ġkotlin . system . exit Process Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġprint Usage () ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar Ġenv Path : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtarget Directory : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġhas Options Ġ= Ġfalse ĊĠĠĠ Ġfor Ġ( arg Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( arg . startsWith ('- ')) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( arg . toLowerCase (). substring ( 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" d " Ġ-> Ġhas Options Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint Usage () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( env Path Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv Path Ġ= Ġarg ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Directory Ġ= Ġarg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ(! has Options Ġ|| Ġenv Path Ġ== Ġnull Ġ|| Ġtarget Directory Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprint Usage () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġv fs Ġ= ĠVirtual FileSystem ( Environments . newInstance ( env Path !! )) ĊĠĠĠ Ġv fs . environment . execute In Readonly Transaction Ġ{ Ġtxn Ġ-> ĊĠĠĠĠĠĠĠ Ġv fs . dump ( txn , ĠPaths . get ( target Directory !! )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġv fs . shutdown () Ċ } Ċ Ċ internal Ġfun Ġprint Usage () Ġ{ ĊĠĠĠ Ġprintln (" Usage : ĠV fs Ġ[- options ] Ġ< environment Ġpath > Ġ< target Ġdirectory >") ĊĠĠĠ Ġprintln (" Options :") ĊĠĠĠ Ġprintln (" Ġ Ġ- d ĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdump ĠVirtual ĠFile ĠSystem Ġin Ġspecified Ġenvironment Ġto Ġspecified Ġdirectory ") ĊĠĠĠ Ġexit Process ( 1 ) Ċ }