png and jpeg gen, refactoring

This commit is contained in:
Dmitry Fedotov
2025-03-27 22:04:21 +03:00
parent b5df6e8c39
commit 71b95dbfae
4 changed files with 28 additions and 66 deletions

36
main.go
View File

@@ -2,41 +2,37 @@ package main
import (
"fmt"
"io"
"os"
)
func main() {
exitCode := run()
os.Exit(exitCode)
}
func run() int {
s := parseSettings()
var processor func(*settings, io.Writer) error
switch s.OM {
case outputpng:
processor = createBarnsleyFernPng
case outputvideo:
processor = createBarnsLeyFernVideo
default:
fmt.Println("неизвестный тип вывода:", s.OM)
return
}
file, err := os.Create(s.Fname)
if err != nil {
fmt.Println("ошибка открытия файла", err)
return
return 1
}
defer func() {
if err := file.Close(); err != nil {
fmt.Println("ошибка закрытия файла", err)
}
}()
if err := processor(s, file); err != nil {
fmt.Println("ошибка создания объекта:", err)
return
if err := createBarnsleyFernImage(s, file); err != nil {
fmt.Println("ошибка создания изображения:", err)
return 2
}
if err := file.Close(); err != nil {
fmt.Println("ошибка закрытия файла:", err)
return 3
}
fmt.Println("done...")
return 0
}