mirror of
https://github.com/hashicorp/packer.git
synced 2026-09-26 17:53:59 -04:00
* [COMPLIANCE] Add/Update Copyright Headers * make generate update * make generate --------- Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com> Co-authored-by: sanya <[email protected]> Co-authored-by: Sanya <[email protected]>
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
// Copyright IBM Corp. 2024, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package file
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"path"
|
|
|
|
registryimage "github.com/hashicorp/packer-plugin-sdk/packer/registry/image"
|
|
)
|
|
|
|
type FileArtifact struct {
|
|
source string
|
|
filename string
|
|
}
|
|
|
|
func (*FileArtifact) BuilderId() string {
|
|
return BuilderId
|
|
}
|
|
|
|
func (a *FileArtifact) Files() []string {
|
|
return []string{a.filename}
|
|
}
|
|
|
|
func (a *FileArtifact) Id() string {
|
|
return "File"
|
|
}
|
|
|
|
func (a *FileArtifact) String() string {
|
|
return fmt.Sprintf("Stored file: %s", a.filename)
|
|
}
|
|
|
|
func (a *FileArtifact) State(name string) interface{} {
|
|
if name == registryimage.ArtifactStateURI {
|
|
img, err := registryimage.FromArtifact(a,
|
|
registryimage.WithID(path.Base(a.filename)),
|
|
registryimage.WithRegion(path.Dir(a.filename)),
|
|
registryimage.WithSourceID(a.source),
|
|
)
|
|
|
|
if err != nil {
|
|
log.Printf("[DEBUG] error encountered when creating a registry image %v", err)
|
|
return nil
|
|
}
|
|
|
|
return img
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (a *FileArtifact) Destroy() error {
|
|
log.Printf("Deleting %s", a.filename)
|
|
return os.Remove(a.filename)
|
|
}
|