Sha256: b9416f698e9036bcb3cc9ff8a0d468103cee6eb603b401fd72fb12c826f51fc1

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

require "frizz"

module Frizz
  module Middleman
    module CmdHelper
      def self.run_with_live_output(cmd)
        IO.popen(cmd) do |io|
          io.each do |line|
            puts line
          end
        end
      end
    end

    class Tasks
      include Rake::DSL

      def self.install!
        new.install
      end

      def install
        namespace :frizz do
          namespace :build do
            relevant_environments.each do |name, env|
              desc "Build #{env.name}"
              task env.name do
                CmdHelper.run_with_live_output "FRIZZ_ENV=#{env.name} middleman build"
              end
            end
          end

          namespace :deploy do
            relevant_environments.each do |name, env|
              desc "Deploy build dir to #{env.name}: #{env.bucket}"
              task env.name do
                Frizz::Site.new(env.bucket).deploy!
              end
            end
          end

          namespace :release do
            relevant_environments.each do |name, env|
              desc "Build and deploy #{env.name}: #{env.bucket}"
              task env.name => ["frizz:build:#{env.name}"] do
                Frizz::Site.new(env.bucket).deploy!
              end
            end
          end
        end
      end

      private

      def relevant_environments
        Frizz.configuration.environments.reject { |name, env| name == "development" }
      end
    end
  end
end

Frizz::Middleman::Tasks.install!

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
frizz-1.3.3 lib/frizz/middleman/tasks.rb
frizz-1.3.2 lib/frizz/middleman/tasks.rb