Sha256: 9289eb6e8ee46f67f4b37c383a37a31fadeb3df24eb9fa226a7989442c14e6dd

Contents?: true

Size: 1.04 KB

Versions: 10

Compression:

Stored size: 1.04 KB

Contents

# clean.rb - "Clean" generator for Rant.
#
# Copyright (C) 2005 Stefan Lang <langstefan@gmx.at>

require 'rant/rantlib'

class Rant::Generators::Clean
    def self.rant_gen(rac, ch, args, &block)
	# validate args
	if args.size > 1
	    rac.abort_at(ch, "Clean doesn't take more than one argument.")
	end
	tname = args.first || "clean"

	# set var with task name to a MultiFileList
	case rac.var[tname]
	when nil
	    rac.var[tname] = Rant::MultiFileList.new(rac)
	when Rant::RacFileList
	    ml = Rant::MultiFileList.new(rac)
	    rac.var[tname] = ml.add(rac.var[tname])
	when Rant::MultiFileList
	    # ok, nothing to do
	else
	    # TODO: refine error message
	    rac.abort_at(ch,
		"var `#{tname}' already exists.",
		"Clean uses var with the same name as the task name.")
	end

	# create task
	rac.task :__caller__ => ch, tname => [] do |t|
	    rac.var[tname].each_entry { |entry|
		if test ?e, entry
		    if test ?f, entry
			rac.cx.sys.rm_f entry
		    else
			rac.cx.sys.rm_rf entry
		    end
		end
	    }
	end
    end
end # class Rant::Generators::Clean

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rant-0.4.8 lib/rant/import/clean.rb
rant-0.4.2 lib/rant/import/clean.rb
rant-0.4.4 lib/rant/import/clean.rb
rant-0.5.0 lib/rant/import/clean.rb
rant-0.5.2 lib/rant/import/clean.rb
rant-0.5.4 lib/rant/import/clean.rb
rant-0.4.0 lib/rant/import/clean.rb
rant-0.4.6 lib/rant/import/clean.rb
rant-0.5.6 lib/rant/import/clean.rb
rant-0.5.7 lib/rant/import/clean.rb