github.com/hashicorp/packer@v1.14.3/post-processor/checksum/artifact.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package checksum
     5  
     6  import (
     7  	"fmt"
     8  	"os"
     9  	"strings"
    10  )
    11  
    12  const BuilderId = "packer.post-processor.checksum"
    13  
    14  type Artifact struct {
    15  	files []string
    16  }
    17  
    18  func NewArtifact(files []string) *Artifact {
    19  	return &Artifact{files: files}
    20  }
    21  
    22  func (a *Artifact) BuilderId() string {
    23  	return BuilderId
    24  }
    25  
    26  func (a *Artifact) Files() []string {
    27  	return a.files
    28  }
    29  
    30  func (a *Artifact) Id() string {
    31  	return ""
    32  }
    33  
    34  func (a *Artifact) String() string {
    35  	files := strings.Join(a.files, ", ")
    36  	return fmt.Sprintf("Created artifact from files: %s", files)
    37  }
    38  
    39  func (a *Artifact) State(name string) interface{} {
    40  	return nil
    41  }
    42  
    43  func (a *Artifact) Destroy() error {
    44  	for _, f := range a.files {
    45  		err := os.RemoveAll(f)
    46  		if err != nil {
    47  			return err
    48  		}
    49  	}
    50  	return nil
    51  }