#!/usr/bin/ruby # author: nishiki # mail: nishiki@yaegashi.fr # info: a simple script who manage your passwords require 'rubygems' require 'optparse' require 'pathname' require 'locale' require 'i18n' APP_ROOT = File.dirname(Pathname.new(__FILE__).realpath) require "#{APP_ROOT}/lib/CliSSH.rb" lang = Locale::Tag.parse(ENV['LANG']).to_simple.to_s[0..1] I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks) I18n.load_path = Dir["#{APP_ROOT}/i18n/*.yml"] I18n.default_locale = :en I18n.locale = lang.to_sym options = {} OptionParser.new do |opts| opts.banner = "#{I18n.t('ssh.option.usage')}: mpw-ssh SEARCH [options]" opts.on("-l", "--login LOGIN", I18n.t('ssh.option.login')) do |login| options[:login] = login end opts.on("-s", "--server SERVER", I18n.t('ssh.option.server')) do |server| options[:server] = server end opts.on("-p", "--port PORT", I18n.t('ssh.option.port')) do |port| options[:port] = port end opts.on('-c', '--config CONFIG', I18n.t('cli.option.config')) do |config| options[:config] = config end opts.on("-h", "--help", I18n.t('ssh.option.help')) do puts opts exit 0 end end.parse! config = MPWConfig.new(options[:config]) check_error = config.checkconfig() cli = CliSSH.new(lang, config) cli.login = options[:login] cli.server = options[:server] cli.port = options[:port] search = ARGV[0] cli.sync() # Setup a new config if !check_error cli.setup(lang) elsif ARGV.length < 1 puts "#{I18n.t('ssh.option.usage')}: mpw-ssh SEARCH [options]" exit 2 end cli.ssh(search) cli = nil exit 0