package Ġcom . bare metal cloud . system call Ċ import Ġkotlinx . datetime . Clock ĊĊ Ċ public Ġdata Ġclass ĠExec Options ( ĊĠĠĠ Ġval Ġtimeout : ĠLong Ġ= Ġ 6 0 Ċ ) Ċ Ċ public Ġsealed Ġclass ĠExec Result Ġ{ ĊĠĠĠ Ġpublic Ġdata Ġclass ĠSuccess ( val Ġstdout : ĠString , Ġval Ġstderr : ĠString ? Ġ= Ġnull ): ĠExec Result () ĊĠĠĠ Ġpublic Ġsealed Ġclass ĠFailure : ĠExec Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġobject ĠTimeout : ĠFailure () ĊĠĠĠĠĠĠĠ Ġpublic Ġdata Ġclass ĠException ( val Ġerror : ĠThrowable ): ĠFailure () ĊĠĠĠĠĠĠĠ Ġpublic Ġdata Ġclass ĠExit Code ( val Ġexit Code : ĠInt , Ġval Ġstdout : ĠString , Ġval Ġstderr : ĠString ): ĠFailure () ĊĠĠĠ Ġ} Ċ } Ċ Ċ public Ġexpect Ġsuspend Ġfun Ġsystem Call ( cmd : ĠString , Ġoptions : ĠExec Options Ġ= ĠExec Options (), Ġdir : ĠString Ġ= Ġ"/ tmp /${ Clock . System . now (). epoch Seconds }") : ĠExec Result ĊĊĊĊ