forked from vieter-v/vieter
feat(docker): added function to retrieve container logs
parent
7e5f0c5a53
commit
27aa215eff
|
@ -76,3 +76,23 @@ pub fn remove_container(id string) ?bool {
|
|||
|
||||
return res.status_code == 204
|
||||
}
|
||||
|
||||
pub fn get_container_logs(id string) ?string {
|
||||
res := request('GET', urllib.parse('/v1.41/containers/$id/logs?stdout=true&stderr=true') ?) ?
|
||||
mut res_bytes := res.text.bytes()
|
||||
|
||||
// Docker uses a special "stream" format for their logs, so we have to
|
||||
// clean up the data.
|
||||
mut index := 0
|
||||
|
||||
for index < res_bytes.len {
|
||||
// The reverse is required because V reads in the bytes differently
|
||||
t := res_bytes[index + 4..index + 8].reverse()
|
||||
len_length := unsafe { *(&u32(&t[0])) }
|
||||
|
||||
res_bytes.delete_many(index, 8)
|
||||
index += int(len_length)
|
||||
}
|
||||
|
||||
return res_bytes.bytestr()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue