exe/keychain
#!/usr/bin/env ruby
lib_path = File.expand_path("#{File.dirname(__FILE__)}/../lib")
$LOAD_PATH << lib_path if File.exist?(lib_path) && !$LOAD_PATH.include?(lib_path)
require 'sym'
require 'sym/app'
require 'sym/app/keychain'
require 'colored2'
def usage
puts "Usage: #{'keychain'.bold.blue}#{' name [ add <contents> | find | delete ]'.bold.green}"
exit 0
end
usage if ARGV.empty?
key_name, action, data = ARGV
unless %i(add find delete).include?(action.to_sym)
puts "Error: operation #{action.bold.red} is not recognized"
usage
end
if action.eql?('add') && data.nil?
puts "Error: please provide data to store with the #{'add'.bold.green} operation."
usage
end
begin
puts data ? \
Sym::App::KeyChain.new(key_name).send(action.to_sym, data) :
Sym::App::KeyChain.new(key_name).send(action.to_sym)
rescue StandardError => e
warn "#{e.message.red}"
end