Sha256: f26fc5d2ef696d545569a49bcaa06058205f74ddd7c3262b893051fc9b57792d

Contents?: true

Size: 1.7 KB

Versions: 2

Compression:

Stored size: 1.7 KB

Contents

#!/usr/bin/env ruby

require 'pathname'
require 'tempfile'
require 'rgpg'

THIS_BASE_NAME = File.basename($0, File.extname($0))
GENERATE_KEY_PAIR_USAGE = '--generate-key-pair <key-base-name> <recipient> <real-name>'
ENCRYPT_USAGE = '--encrypt <public-key-file-name> <input-file-name> <output-file-name>'
DECRYPT_USAGE = '--decrypt <public-key-file-name> <private-key-file-name> <input-file-name> <output-file-name>'

if ARGV[0] == '--generate-key-pair'
  raise RuntimeError.new(GENERATE_KEY_PAIR_USAGE) unless ARGV.size == 4
  key_base_name = ARGV[1]
  recipient = ARGV[2]
  real_name = ARGV[3]
  Rgpg::GpgHelper.generate_key_pair(key_base_name, recipient, real_name)
  exit 0
elsif ARGV[0] == '--encrypt'
  raise RuntimeError.new(ENCRYPT_USAGE) unless ARGV.size == 4
  public_key_file_name = ARGV[1]
  input_file_name = ARGV[2]
  output_file_name = ARGV[3]
  Rgpg::GpgHelper.encrypt_file(public_key_file_name, input_file_name, output_file_name)
  exit 0
elsif ARGV[0] == '--decrypt'
  raise RuntimeError.new(DECRYPT_USAGE) unless ARGV.size == 5 || ARGV.size == 6
  public_key_file_name = ARGV[1]
  private_key_file_name = ARGV[2]
  input_file_name = ARGV[3]
  output_file_name = ARGV[4]
  ARGV.size == 6 ? passphrase = ARGV[5] : passphrase = nil
  Rgpg::GpgHelper.decrypt_file(public_key_file_name, private_key_file_name, input_file_name, output_file_name, passphrase)
  exit 0
else
  $stderr.puts "Unsupported command \"#{ARGV[0]}\"" unless ARGV[0].nil? || ARGV[0].size == 0
  $stderr.puts 'Usage:'
  $stderr.puts "  #{THIS_BASE_NAME} <command> <arg0> ... <argN-1>"
  $stderr.puts 'Available commands:'
  $stderr.puts "  #{GENERATE_KEY_PAIR_USAGE}"
  $stderr.puts "  #{ENCRYPT_USAGE}"
  $stderr.puts "  #{DECRYPT_USAGE}"
  exit 1
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rgpg-0.4.0 bin/rgpg
rgpg-0.3.0 bin/rgpg