#!/usr/bin/env ruby

require 'highline/import'

require File.join(File.dirname($0), '..', 'config', 'environment.rb')

def usage_message
	$stderr.puts <<EOF
Usage: #{File.basename($0)} [password]

Password is read interactively, if not given on command line. Then, if password
is blank, a random one is generated and printed.
EOF
	exit 1
end

if ARGV.include?('-h') || ARGV.include?('--help')
  usage_message
else
  password, generated = ARGV[0], false
end

require File.expand_path('../../lib/password',  __FILE__)

password = ask('Password: ') { |q| q.echo = nil } if password.nil?
password, generated = Password.random, true if password == ''

puts password if generated

puts password.crypt('$6$' + Password::Sha512Crypt.generate_salt)
