package Ġio . ktor . generator . cli . utils Ċ Ċ import Ġio . ktor . generator . bundle .* Ċ import Ġkotlinx . c interop . CP o inter Ċ import Ġkotlinx . c interop . mem Scoped Ċ import Ġplatform . posix . FILE Ċ Ċ expect Ġfun Ġopen Pipe ( command : ĠString , Ġaccess : ĠString ): ĠC Pointer < FILE >? Ċ expect Ġfun Ġclose Pipe ( file Ptr : ĠC Pointer < FILE >): ĠInt Ċ Ċ internal Ġfun Ġrun Process ( command : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġfile Ptr Ġ= Ġopen Pipe ( command , Ġ" r ") ĊĠĠĠ Ġif Ġ( file Ptr Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ ĠProperties Bundle . write ErrorMessage (" unable . to . run . command ", Ġcommand ) ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġmem Scoped Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Output ( file Ptr , Ġ:: print ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġstatus Ġ= Ġclose Pipe ( file Ptr ) ĊĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠProperties Bundle . write ErrorMessage (" error . running . command ", Ġcommand ) ĊĠĠĠ Ġ} Ċ }