(params: DockerCLIParameters | PartialExecParameters | DockerResolverParameters, options?: { useSimpleVersion?: boolean })
| 266 | } |
| 267 | |
| 268 | export async function dockerEngineVersion(params: DockerCLIParameters | PartialExecParameters | DockerResolverParameters, options?: { useSimpleVersion?: boolean }): Promise<{ versionString: string; versionMatch?: string } | undefined> { |
| 269 | try { |
| 270 | const execParams = { |
| 271 | ...toExecParameters(params), |
| 272 | print: true, |
| 273 | }; |
| 274 | const args: string[] = options?.useSimpleVersion |
| 275 | ? ['version'] |
| 276 | : ['version', '--format', '{{.Server.Version}}']; |
| 277 | const result = await dockerCLI(execParams, ...args); |
| 278 | const versionString = result.stdout.toString().trim(); |
| 279 | const versionMatch = versionString.match(/(?<major>[0-9]+)\.(?<minor>[0-9]+)\.(?<patch>[0-9]+)/); |
| 280 | if (!versionMatch) { |
| 281 | return { versionString }; |
| 282 | } |
| 283 | return { versionString, versionMatch: versionMatch[0] }; |
| 284 | } catch { |
| 285 | return undefined; |
| 286 | } |
| 287 | } |
| 288 | |
| 289 | export async function dockerCLI(params: DockerCLIParameters | PartialExecParameters | DockerResolverParameters, ...args: string[]) { |
| 290 | const partial = toExecParameters(params); |
no test coverage detected