1
0
Fork 0
mirror of https://github.com/nishiki/manage-password.git synced 2024-11-26 23:33:03 +00:00

new binary for copy

This commit is contained in:
Adrien Waksberg 2016-10-20 09:23:26 +02:00
parent 1745585fb8
commit fdc1a6f3ec
4 changed files with 83 additions and 12 deletions

63
bin/mpw-copy Normal file
View file

@ -0,0 +1,63 @@
#!/usr/bin/ruby
# MPW is a software to crypt and manage your passwords
# Copyright (C) 2016 Adrien Waksberg <mpw@yae.im>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require 'optparse'
require 'mpw/config'
require 'mpw/cli'
# --------------------------------------------------------- #
# Options
# --------------------------------------------------------- #
options = {}
OptionParser.new do |opts|
opts.banner = "#{I18n.t('option.usage')}: mpw copy [options]"
opts.on('-c', '--config PATH', I18n.t('option.config')) do |config|
options[:config] = config
end
opts.on('-g', '--group NAME', I18n.t('option.group')) do |group|
options[:group] = group
end
opts.on('-h', '--help', I18n.t('option.help')) do
puts opts
exit 0
end
opts.on('-p', '--pattern PATTERN', I18n.t('option.pattern')) do |pattern|
options[:pattern] = pattern
end
opts.on('-w', '--wallet NAME', I18n.t('option.wallet')) do |wallet|
options[:wallet] = wallet
end
end.parse!
config = MPW::Config.new(options[:config])
cli = MPW::Cli.new(config, options[:sync])
opts = { search: options[:pattern],
group: options[:group],
}
cli.get_wallet(options[:wallet])
cli.decrypt
cli.copy(opts)

View file

@ -89,8 +89,7 @@ en:
login: "Press <l> to copy the login"
password: "Press <p> to copy the password"
otp_code: "Press <o> to copy the otp code"
update: "Press <u> to update the item"
delete: "Press <d> to delete the item"
quit: "Press <q> to quit"
delete_key:
valid: "Key has been deleted!"
delete_item:

View file

@ -89,8 +89,7 @@ fr:
login: "Pressez <l> pour copier l'identifiant"
password: "Pressez <p> pour copier le mot de passe"
otp_code: "Pressez <o> pour copier le code OTP"
update: "Pressez <u> pour mettre à jour l'élément"
delete: "Pressez <d> pour supprimer l'élément"
quit: "Pressez <q> pour quitter"
delete_key:
valid: "La clé a bien été supprimée!"
delete_item:

View file

@ -314,19 +314,12 @@ class Cli
Clipboard.copy(@mpw.get_otp_code(item.id))
puts I18n.t('form.clipboard.otp', time: @mpw.get_otp_remaining_time).yellow
when 'd', 'delete'
break if delete(item)
when 'u', 'update', 'e', 'edit'
update(item)
else
puts "----- #{I18n.t('form.clipboard.help.name')} -----".cyan
puts I18n.t('form.clipboard.help.login')
puts I18n.t('form.clipboard.help.password')
puts I18n.t('form.clipboard.help.otp_code')
puts I18n.t('form.clipboard.help.update')
puts I18n.t('form.clipboard.help.delete')
puts I18n.t('form.clipboard.help.quit')
next
end
end
@ -489,6 +482,23 @@ class Cli
puts "#{I18n.t('display.error')} #16: #{e}".red
end
# Copy a password, otp, login
# @args: options -> the option to search
def copy(options={})
items = @mpw.list(options)
if items.length == 0
puts "#{I18n.t('display.warning')}: #{I18n.t('warning.select')}".yellow
else
table(items)
item = get_item(items)
clipboard(item)
end
rescue Exception => e
puts "#{I18n.t('display.error')} #14: #{e}".red
end
# Export the items in a CSV file
# @args: file -> the destination file
# options -> option to search