mirror of
https://codeberg.org/scip/epuppy.git
synced 2025-12-17 04:20:59 +01:00
- add color and color config support - fix epub parsing - add variable margin (left and right arrow keys) - add help screen (hit `?`) - add config file support
50 lines
755 B
Go
50 lines
755 B
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
)
|
|
|
|
func Die(err error) int {
|
|
fmt.Fprintln(os.Stderr, "Error: ", err.Error())
|
|
|
|
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
|
|
}
|