def self.run(destination_root, manifold, name, version, arguments)
if arguments.blank? || (arguments.first && ["help", "-h", "--help"].include?(arguments.first))
Manifold.new(destination_root, manifold, name, version).run(arguments)
return
end
generator_name = arguments.shift
if generator_class = manifold.generator(generator_name)
Generator.new(generator_name, generator_class, destination_root, name, version).run(arguments)
else
Manifold.new(destination_root, manifold, name, version).run(arguments)
end
end