package Ġorg . jetbrains . cap it ol io Ċ Ċ import Ġcom . xeb ial abs . over there .* Ċ import Ġcom . xeb ial abs . over there . Cmd Line . build Ċ import Ġcom . xeb ial abs . over there . Connection Options .* Ċ import Ġcom . xeb ial abs . over there . Operating System Family . UNIX Ċ import Ġcom . xeb ial abs . over there . Operating System Family . WINDOWS Ċ import Ġcom . xeb ial abs . over there . c ifs . C ifs Connection Builder . C IF S _ PROTOCOL Ċ import Ġcom . xeb ial abs . over there . c ifs . C ifs Connection Builder . CONNECTION _ TYPE Ċ import Ġcom . xeb ial abs . over there . c ifs . C ifs Connection Type . WIN RM _ NATIVE Ċ import Ġcom . xeb ial abs . over there . local . Local Connection Ċ import Ġcom . xeb ial abs . over there . local . Local File Ċ import Ġcom . xeb ial abs . over there . ssh . Ssh Connection Builder . SSH _ PROTOCOL Ċ import Ġcom . xeb ial abs . over there . ssh . Ssh Connection Type . SCP Ċ import Ġjava . io . File Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠJulia . Res he tn ik ova Ġon Ġ 3 0 - Oct - 1 5 . Ċ Ġ*/ Ċ Ċ internal Ġclass ĠRemote Connection Ġ@ Throws ( Exception :: class ) Ċ Ċ constructor ( host Ip : String , Ġos : ĠOperating System Family , Ġusername : String , Ġpassword : String ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġoptions : ĠConnection Options Ġ= Ġnull !! ĊĠĠĠ Ġprivate Ġval Ġprotocol : String Ġ= Ġnull !! ĊĠĠĠ Ġvar Ġworking Directory : String Ġ= Ġnull !! ĊĠĠĠ Ġprivate Ġval Ġhost : String Ġ= Ġnull !! ĊĠĠĠ Ġvar Ġos : ĠOperating System Family Ġ= ĠWINDO WS ĊĠĠĠ Ġvar Ġconnection : ĠOver there Connection Ġ= Ġnull !! ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . host Ġ= Ġhost Ip ĊĠĠĠĠĠĠĠ Ġoptions Ġ= ĠConnection Options () ĊĠĠĠĠĠĠĠ Ġoptions . set ( ADDRESS , Ġhost Ip ) ĊĠĠĠĠĠĠĠ Ġoptions . set ( USERNAME , Ġusername ) ĊĠĠĠĠĠĠĠ Ġoptions . set ( PASSWORD , Ġpassword ) ĊĠĠĠĠĠĠĠ Ġif Ġ( os Ġ== ĠWINDO WS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . set ( CONNECTION _ TYPE , ĠWIN RM _ NATIVE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġ" C :\\ Users \\ $ username " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprotocol Ġ= ĠC IF S _ PROTOCOL ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . set ( CONNECTION _ TYPE , ĠS CP ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġ"/ home /$ username " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprotocol Ġ= ĠSSH _ PROTOCOL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoptions . set ( OPER ATING _ SYSTEM , Ġos ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset PrivateKey ( privateKey File : ĠFile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// options . set ( PRIVATE _ KEY _ FILE , ĠprivateKey File ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnect (): ĠRemote Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection Ġ= ĠOver there . getConnection ( protocol , Ġoptions ) ĊĠĠĠĠĠĠĠ Ġconnection . working Directory Ġ= Ġconnection . getFile ( working Directory ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisconnect () Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute ( command : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . execute ( build ( command )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( path : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Remote File ( path ). delete Re cursively () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġput ( local FilePath : String , Ġremote FilePath : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal File Ġ= Ġget Local File ( local FilePath ) ĊĠĠĠĠĠĠĠ Ġval Ġremote File : ĠOver there File ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( remote FilePath ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntime IOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( connection . working Directory , Ġremote FilePath ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlocal File . copy To ( remote File ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget ( remote FilePath : String , Ġlocal FilePath : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġlocal File Ġ= Ġget Local File ( local FilePath ) ĊĠĠĠĠĠĠĠ Ġvar Ġremote File : ĠOver there File ĊĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( remote FilePath ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! remote File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( connection . working Directory , Ġremote FilePath ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġremote File . copy To ( local File ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Local File ( local FilePath : String ): ĠLocal File Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocal Connection Ġ= ĠLocal Connection (" local ", ĠConnection Options ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠLocal File ( local Connection , ĠFile ( local FilePath )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Remote File ( remote FilePath : String ): ĠOver there File Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote File : ĠOver there File ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( remote FilePath ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntime IOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote File Ġ= Ġconnection . getFile ( connection . working Directory , Ġremote FilePath ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// remote File Ġ= Ġconnection . getFile ( connection . get Working Directory (), Ġremote FilePath ); ĊĠĠĠĠĠĠĠ Ġreturn Ġremote File ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġextract Zip ( filename : String , Ġdest Folder : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( os Ġ=== ĠUNIX ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . execute (" unzip Ġ- o Ġ$ filename Ġ- d Ġ$ dest Folder ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( os Ġ=== ĠWINDO WS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . execute (" 7 z Ġx Ġ$ filename Ġ- ao a Ġ- o $ dest Folder ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġusername : String ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoptions . get ( USERNAME ) ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }