require_relative "../application" namespace :bt do desc "Symlink registered gems in `./tmp/gems` so their views, etc. can be inspected by Tailwind CSS." task link: :environment do if Dir.exist?("tmp/gems") puts "Removing previously linked gems." `rm -f tmp/gems/*` else if File.exist?("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}'." `ln -s #{target} tmp/gems/#{linked_gem}` end end end end namespace :bullet_train do namespace :themes do task :install, [:theme_name] => :environment do |task, args| BulletTrain::Themes::Application.install_theme(args[:theme_name]) end end end