# frozen_string_literal: true require 'rake_factory' require_relative '../transformers' module RakeSecrets module Tasks class Generate < RakeFactory::Task default_name :generate default_description(RakeFactory::DynamicValue.new do |t| "Generates and stores the '#{t.id}' secret." end) parameter :id, required: true parameter :specification, required: true parameter :backend, required: true parameter :path, required: true parameter :transformer, default: Transformers.identity action do puts("Generating '#{id}' secret...") secret = specification.generate transformed = transformer.transform(secret) backend.store(path, transformed) end end end end