Files
GitLab-License-Generator/src/generator.keys.rb
2023-12-27 00:59:10 +08:00

45 lines
1.0 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# encoding: utf-8
require 'optparse'
require 'openssl'
public_key_file = nil
private_key_file = nil
OptionParser.new do |opts|
opts.banner = "Usage: generator.keys.rb [options]"
opts.on("--public-key PATH", "Specify public key file (required)") do |v|
public_key_file = File.expand_path(v)
end
opts.on("--private-key PATH", "Specify private key file (required)") do |v|
private_key_file = File.expand_path(v)
end
opts.on("-h", "--help", "Prints this help") do
puts opts
exit
end
end.parse!
if public_key_file.nil? || private_key_file.nil?
puts "[!] missing required options"
puts "[!] use -h for help"
exit 1
end
if File.exist?(private_key_file) || File.exist?(public_key_file)
puts "[!] key pair already exists"
puts "[!] remove them if you want to regenerate"
exit 1
end
puts "[*] generating rsa key pair..."
key = OpenSSL::PKey::RSA.new(2048)
File.write(private_key_file, key.to_pem)
File.write(public_key_file, key.public_key.to_pem)
puts "[*] done"