Timeout, admin password and site id are set in many commands, and we need to take care of synchronising the descriptions and flags between them. This change moves these standard options to cmd.go importing them in the same manner CommonOpts imported by all commands already.
37 lines
1.0 KiB
Go
37 lines
1.0 KiB
Go
package cmd
|
|
|
|
import (
|
|
"time"
|
|
|
|
log "github.com/go-pkgz/lgr"
|
|
)
|
|
|
|
// RestoreCommand set of flags and command for restore from backup
|
|
type RestoreCommand struct {
|
|
ImportPath string `short:"p" long:"path" env:"BACKUP_PATH" default:"./var/backup" description:"export path"`
|
|
ImportFile string `short:"f" long:"file" default:"userbackup-{{.SITE}}-{{.YYYYMMDD}}.gz" description:"file name" required:"true"`
|
|
|
|
SupportCmdOpts
|
|
CommonOpts
|
|
}
|
|
|
|
// Execute runs import with RestoreCommand parameters, entry point for "restore" command
|
|
// uses ImportCommand with constructed full file name
|
|
func (rc *RestoreCommand) Execute(args []string) error {
|
|
log.Printf("[INFO] restore %s, site %s", rc.ImportFile, rc.Site)
|
|
resetEnv("SECRET", "ADMIN_PASSWD")
|
|
|
|
fp := fileParser{site: rc.Site, path: rc.ImportPath, file: rc.ImportFile}
|
|
fname, err := fp.parse(time.Now())
|
|
if err != nil {
|
|
return err
|
|
}
|
|
importer := ImportCommand{
|
|
InputFile: fname,
|
|
Provider: "native",
|
|
SupportCmdOpts: rc.SupportCmdOpts,
|
|
CommonOpts: rc.CommonOpts,
|
|
}
|
|
return importer.Execute(args)
|
|
}
|