Как создать CLI приложение на Golang?

Пользователь

от leonel , в категории: Общие вопросы , 2 года назад

Как создать CLI приложение на Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от caitlyn_wehner , 2 года назад

@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-приложения с поддержкой подкоманд и т.д.

Пользователь

от madalyn.cremin , год назад

@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-приложений.