From 8a9147562778c5d129aaa89045d8be85755142da Mon Sep 17 00:00:00 2001 From: Raul Guichard Date: Mon, 5 Sep 2022 21:38:48 -0500 Subject: [PATCH] Take multiple input files, make multiple outputs. --- lib/tailwindcss/commands.rb | 12 ++++++++---- lib/tasks/build.rake | 18 ++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lib/tailwindcss/commands.rb b/lib/tailwindcss/commands.rb index 136b5eee..56c98286 100644 --- a/lib/tailwindcss/commands.rb +++ b/lib/tailwindcss/commands.rb @@ -55,12 +55,16 @@ def executable( exe_path end - def compile_command(debug: false, **kwargs) + def compile_command(debug: false, + input: "app/assets/stylesheets/application.tailwind.css", + output: "app/assets/builds/tailwind.css", + config: "config/tailwind.config.js", + **kwargs) [ executable(**kwargs), - "-i", Rails.root.join("app/assets/stylesheets/application.tailwind.css").to_s, - "-o", Rails.root.join("app/assets/builds/tailwind.css").to_s, - "-c", Rails.root.join("config/tailwind.config.js").to_s, + "-i", Rails.root.join(input).to_s, + "-o", Rails.root.join(output).to_s, + "-c", Rails.root.join(config).to_s, ].tap do |command| command << "--minify" unless debug end diff --git a/lib/tasks/build.rake b/lib/tasks/build.rake index 258930eb..b239af35 100644 --- a/lib/tasks/build.rake +++ b/lib/tasks/build.rake @@ -2,18 +2,24 @@ namespace :tailwindcss do desc "Build your Tailwind CSS" task :build do |_, args| debug = args.extras.include?("debug") - command = Tailwindcss::Commands.compile_command(debug: debug) - puts command.inspect - system(*command, exception: true) + Dir['app/assets/stylesheets/**/*.tailwind.css'].each do | stylesheet | + output = 'app/assets/builds/'+stylesheet.gsub('app/assets/stylesheets/', '').gsub('.tailwind', '') + command = Tailwindcss::Commands.compile_command(debug: debug, input: stylesheet, output: output) + puts command.inspect + system(*command, exception: true) + end end desc "Watch and build your Tailwind CSS on file changes" task :watch do |_, args| debug = args.extras.include?("debug") poll = args.extras.include?("poll") - command = Tailwindcss::Commands.watch_command(debug: debug, poll: poll) - puts command.inspect - system(*command) + Dir['app/assets/stylesheets/**/*.tailwind.css'].each do | stylesheet | + output = 'app/assets/builds/'+stylesheet.gsub('app/assets/stylesheets/', '').gsub('.tailwind', '') + command = Tailwindcss::Commands.watch_command(debug: debug, poll: poll, input: stylesheet, output: output) + puts command.inspect + system(*command) + end end end