namespace :bullet_train do desc "Symlink registered gems in `./tmp/gems` so their views, etc. can be inspected by Tailwind CSS." task :link_gems => :environment do if Dir.exists?("tmp/gems") puts "Removing previously linked gems." `rm -f tmp/gems/*` else if File.exists?("tmp/gems") raise "A file named `tmp/gems` already exists? It has to be removed before we can create the required directory." end puts "Creating 'tmp/gems' directory." `mkdir tmp/gems` end `touch tmp/gems/.keep` BulletTrain.linked_gems.each do |linked_gem| target = `bundle show #{linked_gem}`.chomp if target.present? puts "Linking '#{linked_gem}' to '#{target}'." puts `ln -s #{target} tmp/gems/#{linked_gem}` end end end end