handle errors

This commit is contained in:
Celogeek 2024-04-28 21:35:36 +02:00
parent f4501753c5
commit 8233d067ef
Signed by: celogeek
SSH Key Fingerprint: SHA256:njNJLzoLQdbV9PC6ehcruRb0QnEgxABoCYZ+0+aUIYc
8 changed files with 41 additions and 27 deletions

View File

@ -228,7 +228,7 @@ func (c *Converter) isZeroValue(f *flag.Flag, value string) (ok bool, err error)
// Parse all parameters
func (c *Converter) Parse() {
c.Cmd.Parse(os.Args[1:])
_ = c.Cmd.Parse(os.Args[1:])
if c.Options.Help {
c.Cmd.Usage()
os.Exit(0)
@ -413,7 +413,7 @@ func (c *Converter) Stats() {
runtime.ReadMemStats(&mem)
if c.Options.Json {
json.NewEncoder(os.Stdout).Encode(map[string]any{
_ = json.NewEncoder(os.Stdout).Encode(map[string]any{
"type": "stats",
"data": map[string]any{
"elapse_ms": elapse.Milliseconds(),

View File

@ -202,7 +202,9 @@ func (o *Options) LoadConfig() error {
if err != nil {
return nil
}
defer f.Close()
defer func(f *os.File) {
_ = f.Close()
}(f)
err = yaml.NewDecoder(f).Decode(o)
if err != nil && err.Error() != "EOF" {
return err
@ -302,7 +304,9 @@ func (o *Options) ShowConfig() string {
// ResetConfig reset all settings to default value
func (o *Options) ResetConfig() error {
New().SaveConfig()
if err := New().SaveConfig(); err != nil {
return err
}
return o.LoadConfig()
}
@ -312,7 +316,9 @@ func (o *Options) SaveConfig() error {
if err != nil {
return err
}
defer f.Close()
defer func(f *os.File) {
_ = f.Close()
}(f)
return yaml.NewEncoder(f).Encode(o)
}

View File

@ -339,7 +339,9 @@ func (e *EPub) writePart(path string, currentPart, totalParts int, part *epubPar
if err != nil {
return err
}
defer wz.Close()
defer func(wz *epubzip.EPUBZip) {
_ = wz.Close()
}(wz)
title := e.Title
if totalParts > 1 {
@ -429,8 +431,8 @@ func (e *EPub) Write() error {
return nil
}
defer func() {
imgStorage.Close()
imgStorage.Remove()
_ = imgStorage.Close()
_ = imgStorage.Remove()
}()
totalParts := len(epubParts)
@ -466,9 +468,9 @@ func (e *EPub) Write() error {
return err
}
bar.Add(1)
_ = bar.Add(1)
}
bar.Close()
_ = bar.Close()
if !e.Json {
utils.Println()
}

View File

@ -94,5 +94,5 @@ func (p *coverTitle) Draw(dst draw.Image, src image.Image, _ *gift.Options) {
textLeft = textArea.Min.X
}
textTop := textArea.Min.Y + textArea.Dy()/2 + textHeight/4
c.DrawString(p.title, freetype.Pt(textLeft, textTop))
_, _ = c.DrawString(p.title, freetype.Pt(textLeft, textTop))
}

View File

@ -64,7 +64,7 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
imgStorage, err := epubzip.NewStorageImageWriter(e.ImgStorage(), e.Image.Format)
if err != nil {
bar.Close()
_ = bar.Close()
return nil, err
}
@ -84,7 +84,7 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
if !(img.DoublePage && input.Id > 0 &&
e.Options.Image.AutoSplitDoublePage && !e.Options.Image.KeepDoublePageIfSplit) {
if err = imgStorage.Add(img.EPUBImgPath(), img.Raw, e.Image.Quality); err != nil {
bar.Close()
_ = bar.Close()
utils.Printf("error with %s: %s", input.Name, err)
os.Exit(1)
}
@ -105,7 +105,7 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
for i, b := range []bool{e.Image.Manga, !e.Image.Manga} {
img = e.transformImage(input, i+1, b)
if err = imgStorage.Add(img.EPUBImgPath(), img.Raw, e.Image.Quality); err != nil {
bar.Close()
_ = bar.Close()
utils.Printf("error with %s: %s", input.Name, err)
os.Exit(1)
}
@ -118,20 +118,20 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
go func() {
wg.Wait()
imgStorage.Close()
_ = imgStorage.Close()
close(imageOutput)
}()
for img := range imageOutput {
if img.Part == 0 {
bar.Add(1)
_ = bar.Add(1)
}
if e.Image.NoBlankImage && img.IsBlank {
continue
}
images = append(images, img)
}
bar.Close()
_ = bar.Close()
if len(images) == 0 {
return nil, errNoImagesFound

View File

@ -155,7 +155,7 @@ func (e *EPUBImageProcessor) loadDir() (totalImages int, output chan *task, err
f, err = os.Open(job.Path)
if err == nil {
img, _, err = image.Decode(f)
f.Close()
_ = f.Close()
}
}
@ -205,7 +205,7 @@ func (e *EPUBImageProcessor) loadCbz() (totalImages int, output chan *task, err
totalImages = len(images)
if totalImages == 0 {
r.Close()
_ = r.Close()
err = errNoImagesFound
return
}
@ -248,7 +248,7 @@ func (e *EPUBImageProcessor) loadCbz() (totalImages int, output chan *task, err
if err == nil {
img, _, err = image.Decode(f)
}
f.Close()
_ = f.Close()
}
p, fn := filepath.Split(filepath.Clean(job.F.Name))
@ -269,7 +269,7 @@ func (e *EPUBImageProcessor) loadCbz() (totalImages int, output chan *task, err
go func() {
wg.Wait()
close(output)
r.Close()
_ = r.Close()
}()
return
}
@ -320,7 +320,9 @@ func (e *EPUBImageProcessor) loadCbr() (totalImages int, output chan *task, err
utils.Printf("\nerror processing image %s: %s\n", e.Input, rerr)
os.Exit(1)
}
defer r.Close()
defer func(r *rardecode.ReadCloser) {
_ = r.Close()
}(r)
for {
f, rerr := r.Next()
if rerr != nil {
@ -367,7 +369,7 @@ func (e *EPUBImageProcessor) loadCbr() (totalImages int, output chan *task, err
if err == nil {
img, _, err = image.Decode(f)
}
f.Close()
_ = f.Close()
}
p, fn := filepath.Split(filepath.Clean(job.Name))

View File

@ -25,7 +25,7 @@ func NewStorageImageWriter(filename string, format string) (*StorageImageWriter,
func (e *StorageImageWriter) Close() error {
if err := e.fz.Close(); err != nil {
e.fh.Close()
_ = e.fh.Close()
return err
}
return e.fh.Close()

10
main.go
View File

@ -66,7 +66,9 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
}
if cmd.Options.Save {
cmd.Options.SaveConfig()
if err := cmd.Options.SaveConfig(); err != nil {
cmd.Fatal(err)
}
utils.Printf(
"%s%s\n\nSaving to %s\n",
cmd.Options.Header(),
@ -82,7 +84,9 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
}
if cmd.Options.Reset {
cmd.Options.ResetConfig()
if err := cmd.Options.ResetConfig(); err != nil {
cmd.Fatal(err)
}
utils.Printf(
"%s%s\n\nReset default to %s\n",
cmd.Options.Header(),
@ -97,7 +101,7 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
}
if cmd.Options.Json {
json.NewEncoder(os.Stdout).Encode(map[string]any{
_ = json.NewEncoder(os.Stdout).Encode(map[string]any{
"type": "options", "data": cmd.Options,
})
} else {