Gyazoでファイル名に空白があるとアップロードできない
Macで⌘+⇧+4とかでキャプチャするとデフォルトで以下のような名前のファイルが作成される。
しかし、ファイルがこのような名前だとGyazoのアイコンへのD&Dによるアップロードがうまく動かないっぽい。
たぶんググれば一発なんだろうけどGyazoのソースも見てみたかったので、この機会にググらずに調査してみた。
まずConsoleログを見てみたら、案の定エラーが
/Users/snaka/Desktop/gyazo.app/Contents/Resources/script:25:in `read': No such file or directory - /tmp/image_upload3130.png (Errno::ENOENT) from /Users/snaka/Desktop/gyazo.app/Contents/Resources/script:25 Warning: /Users/snaka/Desktop/ピクチャ not a valid file - skipping Warning: 1.png not a valid file - skipping Error 4: no file was specified Try 'sips --help' for help using this tool
これを見て一発で原因が判明。本来、"/Users/snaka/Desktop/ピクチャ 1.png"となるところが"/Users/snaka/Desktop/ピクチャ"となっている。空白以降が途切れてしまっている。
Gyazoのソース(/Applications/gyazo.app/Contents/Resources/script)を開いてみると
system "sips -s format png #{imagefile} --out #{tmpfile}"
となっているのがダメみたい。以下のようにsipsコマンドに渡すファイル名をダブルクォートで括る。
system "sips -s format png \"#{imagefile}\" --out #{tmpfile}"
そしたら、OKだった。Gyazo簡単過ぎ。