Sha256: 594b9071be65632afe7738e563fd3fafd3177ac7439e090adfc03052ac4808ac

Contents?: true

Size: 1.12 KB

Versions: 14

Compression:

Stored size: 1.12 KB

Contents

require 'rake_factory'
require 'sshkey'

module RakeSSH
  module Tasks
    module Key
      class Generate < RakeFactory::Task
        default_name :generate
        default_description RakeFactory::DynamicValue.new { |t|
          "Generates an SSH key pair in #{t.path}"
        }

        parameter :path, required: true
        parameter :name_prefix, default: 'ssh'
        parameter :type, default: "RSA"
        parameter :bits, default: 4096
        parameter :comment
        parameter :passphrase

        action do |t|
          print "Generating SSH key '#{t.name_prefix}' in '#{t.path}'... "
          key = SSHKey.generate(
              type: t.type,
              bits: t.bits,
              comment: t.comment,
              passphrase: t.passphrase)
          verbose(false) do
            mkdir_p(t.path)
          end
          File.open("#{t.path}/#{t.name_prefix}.private", 'w') do |f|
            f.write(key.private_key)
          end
          File.open("#{t.path}/#{t.name_prefix}.public", 'w') do |f|
            f.write(key.ssh_public_key)
          end
          puts "Done."
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rake_ssh-0.7.0.pre.6 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.7.0.pre.5 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.7.0.pre.4 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.7.0.pre.3 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.7.0.pre.2 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.7.0.pre.1 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.6.0 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.5.0.pre.2 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.5.0.pre.1 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.4.0 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.3.0.pre.1 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.2.0 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.1.0.pre.5 lib/rake_ssh/tasks/key/generate.rb
rake_ssh-0.1.0.pre.4 lib/rake_ssh/tasks/key/generate.rb