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