png and jpeg gen, refactoring
This commit is contained in:
36
main.go
36
main.go
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user