Create clone_projects_job.rb

This commit is contained in:
Max Wofford 2025-05-20 13:25:14 -04:00
parent ec70cfa6fd
commit 42be4286f6

View file

@ -0,0 +1,26 @@
class CloneProjectsJob < ApplicationJob
queue_as :default
def perform
submissions = YAML.load_file(Rails.root.join("submissions.yml"))
submissions["projects"].each do |url|
url = url.chomp("/")
url = "#{url}.git" unless url.end_with?(".git")
org, repo = url.gsub("https://github.com/", "").gsub(".git", "").split("/")
target_dir = File.join(Rails.root, "content", "projects", org, repo)
if Dir.exist?(target_dir) && Dir.exist?(File.join(target_dir, ".git"))
Rails.logger.info "Pulling latest for #{org}/#{repo}..."
system("cd '#{target_dir}' && git pull")
else
Rails.logger.info "Cloning #{org}/#{repo}..."
system("git clone #{url} '#{target_dir}'")
end
end
Rails.logger.info "Done cloning and updating all projects!"
end
end