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 { return []string{ control.Config.ConfigPath, control.Config.ExecutablePath(), control.Config.SelfOverridesFile, control.Config.SelfResolverBlockFile, control.Config.GlobalAuthorizedKeysFile, } }