@@ -190,48 +190,17 @@ func GenerateFile(config config.Config, containers context.Context) bool {
190190	}
191191
192192	if  config .Dest  !=  ""  {
193- 		dest , err  :=  os .CreateTemp (filepath .Dir (config .Dest ), "docker-gen" )
194- 		defer  func () {
195- 			dest .Close ()
196- 			os .Remove (dest .Name ())
197- 		}()
198- 		if  err  !=  nil  {
199- 			log .Fatalf ("Unable to create temp file: %s\n " , err )
200- 		}
201- 
202- 		if  n , err  :=  dest .Write (contents ); n  !=  len (contents ) ||  err  !=  nil  {
203- 			log .Fatalf ("Failed to write to temp file: wrote %d, exp %d, err=%v" , n , len (contents ), err )
204- 		}
205- 
206- 		oldContents  :=  []byte {}
207- 		if  fi , err  :=  os .Stat (config .Dest ); err  ==  nil  ||  os .IsNotExist (err ) {
208- 			if  err  !=  nil  &&  os .IsNotExist (err ) {
209- 				emptyFile , err  :=  os .Create (config .Dest )
210- 				if  err  !=  nil  {
211- 					log .Fatalf ("Unable to create empty destination file: %s\n " , err )
212- 				} else  {
213- 					emptyFile .Close ()
214- 					fi , _  =  os .Stat (config .Dest )
215- 				}
216- 			}
217- 
218- 			if  err  :=  dest .Chmod (fi .Mode ()); err  !=  nil  {
219- 				log .Fatalf ("Unable to chmod temp file: %s\n " , err )
220- 			}
221- 
222- 			chown (dest , fi )
223- 
224- 			oldContents , err  =  os .ReadFile (config .Dest )
225- 			if  err  !=  nil  {
226- 				log .Fatalf ("Unable to compare current file contents: %s: %s\n " , config .Dest , err )
227- 			}
193+ 		oldContents , err  :=  os .ReadFile (config .Dest )
194+ 		if  err  !=  nil  &&  ! os .IsNotExist (err ) {
195+ 			log .Fatalf ("Unable to compare current file contents: %s: %s\n " , config .Dest , err )
228196		}
229197
230198		if  ! bytes .Equal (oldContents , contents ) {
231- 			err  =  os .Rename ( dest . Name (),  config .Dest )
199+ 			err  : =os .WriteFile ( config .Dest ,  contents ,  0644 )
232200			if  err  !=  nil  {
233- 				log .Fatalf ("Unable to create  dest file %s: %s\n " , config .Dest , err )
201+ 				log .Fatalf ("Unable to write to  dest file %s: %s\n " , config .Dest , err )
234202			}
203+ 
235204			log .Printf ("Generated '%s' from %d containers" , config .Dest , len (filteredContainers ))
236205			return  true 
237206		}
0 commit comments