wisski-cloud-distillery/internal/dis/component/exporter/extras_config.go
Tom Wiesing 8235ea9105
Require access to Still via method
This commit adds a safeguard to accessing the still from a specific
component by requiring access via the component.GetStill method.
2024-04-08 22:39:32 +02:00

46 lines
933 B
Go

package exporter
import (
"context"
"path/filepath"
"github.com/FAU-CDI/wisski-distillery/internal/dis/component"
)
// Config implements backing up configuration
type Config struct {
component.Base
}
var (
_ = (component.Backupable)((*Config)(nil))
)
func (*Config) BackupName() string {
return "config"
}
func (control *Config) Backup(scontext *component.StagingContext) error {
files := control.backupFiles()
return scontext.AddDirectory("", func(ctx context.Context) error {
for _, src := range files {
name := filepath.Base(src)
if err := scontext.CopyFile(name, src); err != nil {
return err
}
}
return nil
})
}
// backupfiles lists the files to be backed up.
func (control *Config) backupFiles() []string {
config := component.GetStill(control).Config
return []string{
config.ConfigPath,
config.Paths.ExecutablePath(),
config.Paths.OverridesJSON,
config.Paths.ResolverBlocks,
}
}