библиотека Go для стилизации вывода в командной строке с помощью цветов и стилей текста, а также для создания форматированных справочных сообщений для CLI-приложений.
.
├── clih/
│ └── usage.go
├── colors/
│ └── colors.go
└── main.go
package main
import (
"flag"
"fmt"
"github.com/imbecility/colorgo/clih"
"github.com/imbecility/colorgo/colors"
"os"
"time"
)
func main() {
flag.Duration("flag4", time.Hour, "Задача организации, в особенности же курс на социально-ориентированный национальный проект способствует повышению актуальности новых предложений.")
flag.Int("flag3", 3, "Практический опыт показывает, что реализация намеченного плана развития способствует повышению актуальности системы обучения кадров, соответствующей насущным потребностям? Дорогие друзья, консультация с профессионалами из IT влечет за собой процесс внедрения и модернизации ключевых компонентов планируемого обновления. Разнообразный и богатый опыт социально-экономическое развитие требует от нас анализа модели развития.")
flag.String("flag1", "строка", "Практический опыт показывает, что дальнейшее развитие различных форм деятельности требует определения и уточнения дальнейших направлений развития проекта.")
flag.Uint64("flag5", 18446744073709551615, "флаг для unit64")
flag.Bool("flag2", false, "Равным образом выбранный нами инновационный путь требует от нас анализа позиций, занимаемых участниками в отношении поставленных задач. ")
flag.Float64("flag0", 3.1415926535, "флаг числа с плавающей точкой")
flag.Usage = func() {
cliName := os.Args[0]
description := "Значимость этих проблем настолько очевидна, что реализация намеченного плана развития требует от нас системного анализа существующих финансовых и административных условий. Разнообразный и богатый опыт курс на социально-ориентированный национальный проект требует определения и уточнения дальнейших направлений развития проекта."
usage := fmt.Sprintf("Usage:\n\t%s [options] <command> [arguments]\n\n", cliName)
cliHelp := clih.GetFlagDescriptions(clih.FlagDescriptionsConfig{
CliName: &cliName,
Usage: &usage,
Description: &description,
})
fmt.Println(cliHelp)
}
flag.Usage()
fmt.Println("---")
fmt.Println(colors.Default("это обычный текст (с доп. стилями)", colors.Italic))
fmt.Println(colors.CCyan("это голубой текст (без доп. стилей)"))
fmt.Println(colors.CRed("это красный жирный текст", colors.Bold))
fmt.Println(colors.CPurple("фиолетовый, жирный и курсив", colors.Bold, colors.Italic))
fmt.Println("---")
var extraStyles []string
fmt.Println(colors.CGreen("зеленый текст с потенциально пустыми стилями", extraStyles...))
extraStyles = []string{colors.Bold, colors.Underline}
fmt.Println(colors.CYellow("желтый текст со стилями из переменной", extraStyles...))
}