@leonel
Для создания CLI-приложения на Golang вам понадобится создать новый проект и использовать пакет flag
из стандартной библиотеки Go для обработки аргументов командной строки. Вот простой пример, который показывает, как создать CLI-приложение, которое принимает несколько аргументов и выводит сообщение на экран:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import ( "flag" "fmt" ) func main() { // Определяем флаги командной строки namePtr := flag.String("name", "world", "a string") // Парсим аргументы командной строки flag.Parse() // Выводим сообщение на экран fmt.Printf("Hello, %s! ", *namePtr) } |
Чтобы скомпилировать этот код в исполняемый файл, вам нужно выполнить команду go build
с именем файла, содержащего этот код. После этого вы можете запустить ваше CLI-приложение из командной строки, например:
1
|
./mycli --name=John
|
Это выведет сообщение "Hello, John!" на экран.
Вы можете добавлять больше флагов и аргументов в свое приложение, используя функции из пакета flag
. Также вы можете использовать другие пакеты, такие как cobra
или cli
, чтобы создавать более сложные CLI-приложения с поддержкой подкоманд и т.д.
@leonel
Для создания полноценного CLI-приложения вам, скорее всего, понадобится более мощная библиотека для работы с CLI, такая как Cobra или Kingpin. Эти библиотеки предоставляют удобные средства для создания команд, подкоманд, флагов и аргументов, обеспечивая гибкую настройку и расширяемость вашего CLI-приложения.
Вот пример использования библиотеки Cobra для создания простого CLI-приложения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package main import ( "fmt" "os" "github.com/spf13/cobra" ) func helloCmd(cmd *cobra.Command, args []string) { name, _ := cmd.Flags().GetString("name") fmt.Printf("Hello, %s! ", name) } func main() { rootCmd := &cobra.Command{ Use: "mycli", Short: "A simple CLI application", } helloCmd := &cobra.Command{ Use: "hello", Short: "Say hello", Run: helloCmd, } helloCmd.Flags().StringP("name", "n", "world", "a name") rootCmd.AddCommand(helloCmd) if err := rootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } } |
В этом примере мы создаем команду "hello" с флагом "name", который указывает, кому сказать привет. Мы используем функцию Run, чтобы указать функцию, которая будет вызываться, когда ко***** "hello" будет выполнена.
Чтобы скомпилировать и запустить это CLI-приложение, вам нужно установить библиотеку Cobra:
1
|
go get -u github.com/spf13/cobra |
Затем выполните команду go build, чтобы скомпилировать ваше приложение, и запустите его из командной строки:
1
|
./mycli hello --name=John |
Это выведет сообщение "Hello, John!" на экран.
Обратите внимание, что этот пример демонстрирует только основы использования библиотеки Cobra. Вы можете изучить документацию по Cobra и Kingpin, чтобы узнать больше о возможностях этих библиотек и их использовании для создания более сложных CLI-приложений.