@ file : Opt In ( Experimental FileSystem :: class ) Ċ Ċ package Ġio Ċ Ċ import Ġchild _ process . Exec Options Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . promise Ċ import Ġok io . Experimental FileSystem Ċ import Ġok io . FileSystem Ċ import Ġok io . Node Js FileSystem Ċ import Ġkotlin . coroutines . resume Ċ import Ġkotlin . coroutines . resume With Exception Ċ import Ġkotlin . coroutines . suspend Coroutine ĊĊ Ċ actual Ġval Ġfile System : ĠFileSystem Ġ= ĠNode Js FileSystem Ċ Ċ actual Ġsuspend Ġfun Ġfind Executable ( executable : ĠString ): ĠString Ġ= ĊĠĠĠ Ġexecutable ĊĊ Ċ actual Ġsuspend Ġfun Ġexecute Command And Capture Output ( ĊĠĠĠ Ġcommand : ĠList < String >, Ġ// Ġ" find Ġ. Ġ- name Ġ. git " ĊĠĠĠ Ġoptions : ĠExecute Command Options Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġcommand To Execute Ġ= Ġcommand . join ToString ( separator Ġ= Ġ" Ġ") Ġ{ Ġarg Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( arg . contains (" Ġ")) Ġ"' $ arg '" Ġelse Ġarg ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġredirect Ġ= Ġif Ġ( options . redirect Stderr ) Ġ" 2 >& 1 Ġ" Ġelse Ġ"" ĊĠĠĠ Ġval Ġexec Options Ġ= Ġobject Ġ: ĠExec Options Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcwd Ġ= Ġoptions . directory ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsuspend Coroutine < String > Ġ{ Ġcontinuation Ġ-> ĊĠĠĠĠĠĠĠ Ġchild _ process . exec ("$ command To Execute Ġ$ redirect ", Ġexec Options ) Ġ{ Ġerror , Ġstdout , Ġstderr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( stderr ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume With Exception ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinuation . resume ( if Ġ( options . trim ) Ġstdout . trim () Ġelse Ġstdout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ actual Ġfun Ġrun Test ( block : Ġsuspend Ġ() Ġ-> ĠUnit ): Ġdynamic Ġ= ĊĠĠĠ ĠGlobal Scope . promise Ġ{ Ġblock () Ġ}