Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

Goでコマンドライン引数を処理する

おんなじファイルしか開けなかったり、常にラスト5行しか表示できないのは寂しいので、 コマンドライン引数を処理できるようにする。flagというパッケージを使えばよいらしい。

// コマンドライン処理
nFlag := flag.Int("n", 5, "Line numbers for display")
flag.Parse()
if flag.NArg() != 1 {
    fmt.Println("Err")
    return
}

content, err := ioutil.ReadFile(flag.Arg(0))
if err != nil {
    log.Fatal(err)
}

これでtail -n 5 filenameみたいな感じのコマンドラインには対応出来ているみたい。

ファイル名が指定されなかったときはエラーとして、簡単なメッセージだけで returnで終わっちゃってるんだけど、簡単に異常終了させる方法がたぶんあるはず。

まあ、ファイル名が指定されなかったらSTDINを処理するのが真っ当なんだけども、それは後回し。