コマンドラインでディレクトリを受け取る

自作のコマンドラインツールでディレクトリを受け取って、 絶対パス相対パスどちらも同じように扱いたい。
そんな場合はfilepath.Absを使って絶対パスに置き換えてしまうのが良さそう。

filepath.Abs絶対パスを渡しても問題なく動作する。

path1, _ := filepath.Abs("./sample")
fmt.Println(apath)

path2, _ := filepath.Abs("/usr/local/bin")
fmt.Println(upath)

なので、こんな感じで使うことになる。

func main() {
    dir := flag.String("d", "", "ディレクトリ")
    flag.Parse()
    path := filepath.Abs(dir)
    fmt.Println(path)
}