mirror of
https://github.com/celogeek/go-comic-converter.git
synced 2025-05-24 15:52:38 +02:00
handle errors
This commit is contained in:
parent
f4501753c5
commit
8233d067ef
@ -228,7 +228,7 @@ func (c *Converter) isZeroValue(f *flag.Flag, value string) (ok bool, err error)
|
|||||||
|
|
||||||
// Parse all parameters
|
// Parse all parameters
|
||||||
func (c *Converter) Parse() {
|
func (c *Converter) Parse() {
|
||||||
c.Cmd.Parse(os.Args[1:])
|
_ = c.Cmd.Parse(os.Args[1:])
|
||||||
if c.Options.Help {
|
if c.Options.Help {
|
||||||
c.Cmd.Usage()
|
c.Cmd.Usage()
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
@ -413,7 +413,7 @@ func (c *Converter) Stats() {
|
|||||||
runtime.ReadMemStats(&mem)
|
runtime.ReadMemStats(&mem)
|
||||||
|
|
||||||
if c.Options.Json {
|
if c.Options.Json {
|
||||||
json.NewEncoder(os.Stdout).Encode(map[string]any{
|
_ = json.NewEncoder(os.Stdout).Encode(map[string]any{
|
||||||
"type": "stats",
|
"type": "stats",
|
||||||
"data": map[string]any{
|
"data": map[string]any{
|
||||||
"elapse_ms": elapse.Milliseconds(),
|
"elapse_ms": elapse.Milliseconds(),
|
||||||
|
@ -202,7 +202,9 @@ func (o *Options) LoadConfig() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer func(f *os.File) {
|
||||||
|
_ = f.Close()
|
||||||
|
}(f)
|
||||||
err = yaml.NewDecoder(f).Decode(o)
|
err = yaml.NewDecoder(f).Decode(o)
|
||||||
if err != nil && err.Error() != "EOF" {
|
if err != nil && err.Error() != "EOF" {
|
||||||
return err
|
return err
|
||||||
@ -302,7 +304,9 @@ func (o *Options) ShowConfig() string {
|
|||||||
|
|
||||||
// ResetConfig reset all settings to default value
|
// ResetConfig reset all settings to default value
|
||||||
func (o *Options) ResetConfig() error {
|
func (o *Options) ResetConfig() error {
|
||||||
New().SaveConfig()
|
if err := New().SaveConfig(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return o.LoadConfig()
|
return o.LoadConfig()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,7 +316,9 @@ func (o *Options) SaveConfig() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer func(f *os.File) {
|
||||||
|
_ = f.Close()
|
||||||
|
}(f)
|
||||||
return yaml.NewEncoder(f).Encode(o)
|
return yaml.NewEncoder(f).Encode(o)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,7 +339,9 @@ func (e *EPub) writePart(path string, currentPart, totalParts int, part *epubPar
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer wz.Close()
|
defer func(wz *epubzip.EPUBZip) {
|
||||||
|
_ = wz.Close()
|
||||||
|
}(wz)
|
||||||
|
|
||||||
title := e.Title
|
title := e.Title
|
||||||
if totalParts > 1 {
|
if totalParts > 1 {
|
||||||
@ -429,8 +431,8 @@ func (e *EPub) Write() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
imgStorage.Close()
|
_ = imgStorage.Close()
|
||||||
imgStorage.Remove()
|
_ = imgStorage.Remove()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
totalParts := len(epubParts)
|
totalParts := len(epubParts)
|
||||||
@ -466,9 +468,9 @@ func (e *EPub) Write() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
bar.Add(1)
|
_ = bar.Add(1)
|
||||||
}
|
}
|
||||||
bar.Close()
|
_ = bar.Close()
|
||||||
if !e.Json {
|
if !e.Json {
|
||||||
utils.Println()
|
utils.Println()
|
||||||
}
|
}
|
||||||
|
@ -94,5 +94,5 @@ func (p *coverTitle) Draw(dst draw.Image, src image.Image, _ *gift.Options) {
|
|||||||
textLeft = textArea.Min.X
|
textLeft = textArea.Min.X
|
||||||
}
|
}
|
||||||
textTop := textArea.Min.Y + textArea.Dy()/2 + textHeight/4
|
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))
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
|
|||||||
|
|
||||||
imgStorage, err := epubzip.NewStorageImageWriter(e.ImgStorage(), e.Image.Format)
|
imgStorage, err := epubzip.NewStorageImageWriter(e.ImgStorage(), e.Image.Format)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
bar.Close()
|
_ = bar.Close()
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
|
|||||||
if !(img.DoublePage && input.Id > 0 &&
|
if !(img.DoublePage && input.Id > 0 &&
|
||||||
e.Options.Image.AutoSplitDoublePage && !e.Options.Image.KeepDoublePageIfSplit) {
|
e.Options.Image.AutoSplitDoublePage && !e.Options.Image.KeepDoublePageIfSplit) {
|
||||||
if err = imgStorage.Add(img.EPUBImgPath(), img.Raw, e.Image.Quality); err != nil {
|
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)
|
utils.Printf("error with %s: %s", input.Name, err)
|
||||||
os.Exit(1)
|
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} {
|
for i, b := range []bool{e.Image.Manga, !e.Image.Manga} {
|
||||||
img = e.transformImage(input, i+1, b)
|
img = e.transformImage(input, i+1, b)
|
||||||
if err = imgStorage.Add(img.EPUBImgPath(), img.Raw, e.Image.Quality); err != nil {
|
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)
|
utils.Printf("error with %s: %s", input.Name, err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
@ -118,20 +118,20 @@ func (e *EPUBImageProcessor) Load() (images []*epubimage.Image, err error) {
|
|||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
imgStorage.Close()
|
_ = imgStorage.Close()
|
||||||
close(imageOutput)
|
close(imageOutput)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
for img := range imageOutput {
|
for img := range imageOutput {
|
||||||
if img.Part == 0 {
|
if img.Part == 0 {
|
||||||
bar.Add(1)
|
_ = bar.Add(1)
|
||||||
}
|
}
|
||||||
if e.Image.NoBlankImage && img.IsBlank {
|
if e.Image.NoBlankImage && img.IsBlank {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
images = append(images, img)
|
images = append(images, img)
|
||||||
}
|
}
|
||||||
bar.Close()
|
_ = bar.Close()
|
||||||
|
|
||||||
if len(images) == 0 {
|
if len(images) == 0 {
|
||||||
return nil, errNoImagesFound
|
return nil, errNoImagesFound
|
||||||
|
@ -155,7 +155,7 @@ func (e *EPUBImageProcessor) loadDir() (totalImages int, output chan *task, err
|
|||||||
f, err = os.Open(job.Path)
|
f, err = os.Open(job.Path)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
img, _, err = image.Decode(f)
|
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)
|
totalImages = len(images)
|
||||||
|
|
||||||
if totalImages == 0 {
|
if totalImages == 0 {
|
||||||
r.Close()
|
_ = r.Close()
|
||||||
err = errNoImagesFound
|
err = errNoImagesFound
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -248,7 +248,7 @@ func (e *EPUBImageProcessor) loadCbz() (totalImages int, output chan *task, err
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
img, _, err = image.Decode(f)
|
img, _, err = image.Decode(f)
|
||||||
}
|
}
|
||||||
f.Close()
|
_ = f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
p, fn := filepath.Split(filepath.Clean(job.F.Name))
|
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() {
|
go func() {
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
close(output)
|
close(output)
|
||||||
r.Close()
|
_ = r.Close()
|
||||||
}()
|
}()
|
||||||
return
|
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)
|
utils.Printf("\nerror processing image %s: %s\n", e.Input, rerr)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
defer r.Close()
|
defer func(r *rardecode.ReadCloser) {
|
||||||
|
_ = r.Close()
|
||||||
|
}(r)
|
||||||
for {
|
for {
|
||||||
f, rerr := r.Next()
|
f, rerr := r.Next()
|
||||||
if rerr != nil {
|
if rerr != nil {
|
||||||
@ -367,7 +369,7 @@ func (e *EPUBImageProcessor) loadCbr() (totalImages int, output chan *task, err
|
|||||||
if err == nil {
|
if err == nil {
|
||||||
img, _, err = image.Decode(f)
|
img, _, err = image.Decode(f)
|
||||||
}
|
}
|
||||||
f.Close()
|
_ = f.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
p, fn := filepath.Split(filepath.Clean(job.Name))
|
p, fn := filepath.Split(filepath.Clean(job.Name))
|
||||||
|
@ -25,7 +25,7 @@ func NewStorageImageWriter(filename string, format string) (*StorageImageWriter,
|
|||||||
|
|
||||||
func (e *StorageImageWriter) Close() error {
|
func (e *StorageImageWriter) Close() error {
|
||||||
if err := e.fz.Close(); err != nil {
|
if err := e.fz.Close(); err != nil {
|
||||||
e.fh.Close()
|
_ = e.fh.Close()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return e.fh.Close()
|
return e.fh.Close()
|
||||||
|
10
main.go
10
main.go
@ -66,7 +66,9 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cmd.Options.Save {
|
if cmd.Options.Save {
|
||||||
cmd.Options.SaveConfig()
|
if err := cmd.Options.SaveConfig(); err != nil {
|
||||||
|
cmd.Fatal(err)
|
||||||
|
}
|
||||||
utils.Printf(
|
utils.Printf(
|
||||||
"%s%s\n\nSaving to %s\n",
|
"%s%s\n\nSaving to %s\n",
|
||||||
cmd.Options.Header(),
|
cmd.Options.Header(),
|
||||||
@ -82,7 +84,9 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cmd.Options.Reset {
|
if cmd.Options.Reset {
|
||||||
cmd.Options.ResetConfig()
|
if err := cmd.Options.ResetConfig(); err != nil {
|
||||||
|
cmd.Fatal(err)
|
||||||
|
}
|
||||||
utils.Printf(
|
utils.Printf(
|
||||||
"%s%s\n\nReset default to %s\n",
|
"%s%s\n\nReset default to %s\n",
|
||||||
cmd.Options.Header(),
|
cmd.Options.Header(),
|
||||||
@ -97,7 +101,7 @@ $ go install github.com/celogeek/go-comic-converter/v%d@%s
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cmd.Options.Json {
|
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,
|
"type": "options", "data": cmd.Options,
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user