2025-10-15 00:54:19 +02:00
|
|
|
package cmd
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"io"
|
2025-10-15 14:36:43 +02:00
|
|
|
"os"
|
2025-10-15 00:54:19 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func Die(err error) int {
|
2025-10-15 14:36:43 +02:00
|
|
|
fmt.Fprintln(os.Stderr, "Error: ", err.Error())
|
2025-10-15 00:54:19 +02:00
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Execute(output io.Writer) int {
|
|
|
|
|
conf, err := InitConfig(output)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return Die(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if conf.Showversion {
|
|
|
|
|
_, err := fmt.Fprintf(output, "This is epuppy version %s\n", Version)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return Die(fmt.Errorf("failed to print to output: %s", err))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if conf.StoreProgress {
|
|
|
|
|
progress, err := GetProgress(conf)
|
|
|
|
|
if err == nil {
|
|
|
|
|
conf.InitialProgress = int(progress)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
progress, err := View(conf)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return Die(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if conf.StoreProgress {
|
|
|
|
|
if err := StoreProgress(conf, progress); err != nil {
|
|
|
|
|
return Die(err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
}
|