blogsyncではてなblogを更新してみようと思ったのだが、Windowsのgoで作ってみると/dev/stdinをos.Stat()しようとしてエラーが出る。

まあ、os.Stat()はLastModifiedを埋めるためにやっているようなので、できなかった現在時刻でいいじゃないということで下記の対応を入れた。

--- a/entry.go
+++ b/entry.go
@@ -198,10 +198,12 @@ func entryFromReader(source io.Reader) (*Entry, error) {
        if f, ok := source.(*os.File); ok {
                fi, err := os.Stat(f.Name())
                if err != nil {
-                       return nil, err
+                       t := time.Now()
+                       entry.LastModified = &t
+               } else {
+                       t := fi.ModTime()
+                       entry.LastModified = &t
                }
-               t := fi.ModTime()
-               entry.LastModified = &t
        }

        return entry, nil

os.Stdinがos.Stat()できない件そのものはGo 1.9以降で治りそうな感じではあるので、寿命が数ヶ月のパッチだろう。