namespace :help do desc 'ヘルプ移行' task migrate: :environment do help_path = ENV.fetch('BTRC_HUB_HELP_PATH') abort if help_path.blank? # 現状物理削除はなぃはず pages = WikiPage .joins(:tag_name) .where(tag_names: { tag_id: nil }) .where.not("tag_names.name LIKE 'タググループ:%'") pages.find_each do |page| puts page.body puts page.title puts 'この identifier は何にする?' identifier = $stdin.gets.chomp Dir.mkdir "#{ help_path }/#{ identifier }" Dir.mkdir "#{ help_path }/#{ identifier }/editions" Dir.mkdir "#{ help_path }/#{ identifier }/editions/ja" last_file_name = '' WikiVersion.where(wiki_page_id: page.id).order(:version_no).each do |ver| last_file_name, last_file_name_no = last_file_name.split('.') file_name = ver.created_at.strftime('%Y-%m-%d') if file_name == last_file_name file_name += ".#{ (last_file_name_no || 1).to_i + 1 }" end File.write "#{ help_path }/#{ identifier }/editions/ja/#{ file_name }.mdx", ver.body last_file_name = file_name end article_meta = { 'identifier' => identifier, 'canonical_language' => 'ja', 'languages' => { 'ja' => { 'current_edition' => last_file_name } } } File.write "#{ help_path }/#{ identifier }/article.yml", article_meta.to_yaml end end end