package Ġio . bk bn . s ke leg ro . docker Ċ Ċ import Ġio . bk bn . s ke leg ro . docker . commands . Command Ċ import Ġio . bk bn . s ke leg ro . docker . commands . From Ċ import Ġjava . util . ArrayList Ċ Ċ open Ġclass ĠDockerfile ( var Ġfrom : ĠFrom ? Ġ= Ġnull , Ġvar Ġsteps : ĠArrayList < Command > Ġ= Ġarray ListOf ()) Ġ: ĠID ocker file Ġ{ ĊĊĠ Ġprivate Ġfun Ġbuild Dockerfile ( build : ĠStringBuilder . () Ġ-> ĠUnit ): ĠString Ġ{ ĊĠĠĠ Ġval ĠstringBuilder Ġ= ĠStringBuilder () ĊĠĠĠ ĠstringBuilder . build () ĊĠĠĠ Ġreturn ĠstringBuilder . toString (). trim () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġbuild Dockerfile Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! from ?. comment . isNull Or Blank ()) Ġappend Line ("# Ġ${ from ?. comment }") ĊĠĠĠĠĠ Ġappend Line ( from ) ĊĠĠĠĠĠ Ġsteps . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! it . comment . isNull Or Blank ()) Ġappend Line ("# Ġ${ it . comment }") ĊĠĠĠĠĠĠĠ Ġappend Line ( it . toString ()) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ fun Ġdocker ( init : ĠDockerfile . () Ġ-> ĠUnit ): ĠDockerfile Ġ{ ĊĠ Ġval Ġdocker file Ġ= ĠDockerfile () ĊĠ Ġdocker file . init () ĊĠ Ġreturn Ġdocker file Ċ } Ċ