読者です 読者をやめる 読者になる 読者になる

ねこみみどーらくblog

nekomimistのよしなしごと

Windows上のblogsyncではてなblogを更新してみる

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以降で治りそうな感じではあるので、寿命が数ヶ月のパッチだろう。