33 lines
672 B
Ruby
33 lines
672 B
Ruby
module Producer
|
|
module Core
|
|
module Actions
|
|
class Mkdir < Action
|
|
def initialize(env, *args, **options)
|
|
super
|
|
@options[:permissions] = @options.delete :mode if @options.key? :mode
|
|
@options[:owner] = @options.delete :user if @options.key? :user
|
|
end
|
|
|
|
def name
|
|
'mkdir'
|
|
end
|
|
|
|
def apply
|
|
path.descend do |p|
|
|
next if fs.dir? p
|
|
fs.mkdir p.to_s
|
|
fs.setstat p.to_s, @options unless @options.empty?
|
|
end
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def path
|
|
Pathname.new(arguments.first)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|