Подтвердить что ты не робот

Может ли использование печати пакета `flag`?

Возможно ли, чтобы я настроил пакет Go flag, чтобы он печатал пользовательскую строку использования? У меня есть приложение с текущим выходом

Usage of ./mysqlcsvdump:
  -compress-file=false: whether compress connection or not
  -hostname="": database host
  -outdir="": where output will be stored
  -password="": database password
  -port=3306: database port
  -single-transaction=true: whether to wrap everything in a transaction or not.
  -skip-header=false: whether column header should be included or not
  -user="root": database user

и предпочтет что-то вроде

Usage: ./mysqlcsvdump [options] [table1 table2 ... tableN]

Parameters:
  -compress-file=false: whether compress connection or not
  -hostname="": database host
  -outdir="": where output will be stored
  -password="": database password
  -port=3306: database port
  -single-transaction=true: whether to wrap everything in a transaction or not.
  -skip-header=false: whether column header should be included or not
  -user="root": database user
4b9b3361

Ответ 1

Да, вы можете это сделать, изменив flag.Usage:

var Usage = func() {
        fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])

        flag.PrintDefaults()
}

Использование печатает стандартную ошибку в сообщении об использовании, документируя все определенные флаги командной строки. Функция - это переменная, которая может быть изменена, чтобы указать на пользовательскую функцию.

Пример использования вне flag:

flag.Usage = func() {
    fmt.Fprintf(os.Stderr, "This is not helpful.\n")
}