devlog

[Go] urfave/cli でヘルプメッセージをマニュアル的に出力する

2024-03-01

概要

urfave/cli はGo言語のCLIライブラリです。

デフォルトで --help フラグや help コマンドが用意されており、通常はライブラリ側でヘルプメッセージを出力してくれますが、プログラム中でマニュアル的に出力することもできます。その方法を紹介します。

ヘルプメッセージをマニュアル的に出力する

cli.ShowAppHelp(c) で出力できます。

package main import ( "fmt" "log" "os" "github.com/urfave/cli/v2" ) func main() { app := &cli.App{ Name: "lsdir", Args: true, ArgsUsage: "path", Action: func(c *cli.Context) error { // arg を取得 path := c.Args().Get(0) if path == "" { // ヘルプメッセージを表示 return cli.ShowAppHelp(c) } fmt.Printf("path: %s\n", path) return nil }, Suggest: true, // サブコマンド名をtypoした時などに候補を表示してくれる HideHelpCommand: true, // helpコマンドを削除 } if err := app.Run(os.Args); err != nil { log.Fatalf("Error: %s", err.Error()) } }

おわり

ユースケースですが Required Argumnet が渡されなかったとき便利です。

  • 作成日
    2024-03-01
  • 更新日
    2024-03-02