package main
import (
"fmt"
"os"
"strconv"
)
// Функция run считывает параметры из командной строки и записывает их в файл config.txt
func run() error {
if len(os.Args) != 3 {
return fmt.Errorf("некорректное количество аргументов. Ожидалось: <ширина> <высота> <процент заполнения>")
}
width, err := strconv.Atoi(os.Args[1])
if err != nil {
return fmt.Errorf("ошибка преобразования ширины: %v", err)
}
height, err := strconv.Atoi(os.Args[2])
if err != nil {
return fmt.Errorf("ошибка преобразования высоты: %v", err)
}
// Получаем процент заполнения
if len(os.Args) == 4 {
fillPercentage, err := strconv.Atoi(os.Args[3])
if err != nil {
return fmt.Errorf("ошибка преобразования процента заполнения: %v", err)
}
// Записываем в файл
config := fmt.Sprintf("%dx%d %d%%\n", width, height, fillPercentage)
return writeConfigToFile("config.txt", config)
}
return fmt.Errorf("процент заполнения не указан")
}
// Функция для записи конфигурации в файл
func writeConfigToFile(filename, config string) error {
file, err := os.Create(filename)
if err != nil {
return fmt.Errorf("ошибка создания файла: %v", err)
}
defer file.Close()
_, err = file.WriteString(config)
if err != nil {
return fmt.Errorf("ошибка записи в файл: %v", err)
}
return nil
}
func main() {
err := run()
if err != nil {
fmt.Println("Ошибка:", err)
os.Exit(1)
}
fmt.Println("Конфигурация успешно записана в config.txt")
}