自分用の blog コマンド を改善中。 git レポジトリへのコミットと blogsync を同期させる方向で実装してみた。
blog new
引数は --custom-path
に渡すことで URL を直接指定できるようにする。
--draft
と --title
はオプション。
class Main < Thor desc "new PATH", "Create a new blog post with PATH" method_option :title, type: :string method_option :draft, type: :boolean def new(path) Dir.chdir(BLOG_REPOSITORY_DIR) do opts = [] opts << "--title=\"#{options[:title]}\"" if options[:title] opts << "--draft" if options[:draft] system("blogsync post --custom-path #{path } #{opts.join(" ")} ongaeshi.hatenablog.com") system("git add ongaeshi.hatenablog.com/entry/#{path}.md") system("git commit -m \"Add #{path}\"") end end
blog commit
blog push してから変更内容をコミットする。
desc "commit", "git commit and push blog changes" method_option :message, type: :string, aliases: '-m' def commit Dir.chdir(BLOG_REPOSITORY_DIR) do list = `git diff --name-only`.split("\n") list += `git diff --name-only origin/main..HEAD`.split("\n") list.each do |path| system("blogsync push #{path}") end system("git add .") message = options[:message] || "Commit blog changes" system("git commit -m \"#{message}\"") end end