おんがえしの blog

作ったプログラムと調べた技術情報

blogsync new は標準入力を受け取らない&コミットしない

前回 から引き続き blog new コマンドの改善を続けている。

直接記事をポストしたいときは標準入力から記事の中身を受け取れるのは便利だけど、 自分の場合は VSCode ですぐに編集するのでまず空の標準入力を渡してその処理をキャンセルする。

      system("blogsync post --custom-path #{path} #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL)

そうすると記事の最初の一回目は必ず空の状態で post されることになるので、常に--draftとして作成する。(blog new から --draft オプションは削除)

      system("blogsync post --custom-path #{path} --draft #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL)

blog new コマンドでは空記事の作成のみにとどめてブログへの投稿は blog commit コマンドで常に行うになった。 大分驚きが減ってすっきりしたオペレーションになったのではないか。

最終的な blog new コマンド。

  desc "new PATH", "Create a new blog post with PATH"
  method_option :title, type: :string
  def new(path)
    Dir.chdir(BLOG_REPOSITORY_DIR) do
      opts = []
      opts << "--title=\"#{options[:title]}\"" if options[:title]
      system("blogsync post --custom-path #{path} --draft #{opts.join(" ")} ongaeshi.hatenablog.com", in: IO::NULL)
    end
  end