From ccb0e71edc1648e60be307d3f3b9816444cce0ff Mon Sep 17 00:00:00 2001 From: nishiki Date: Sat, 6 Dec 2014 23:53:03 +0100 Subject: [PATCH] add text color --- Gemfile | 1 + i18n/cli/en.yml | 21 ++++---------------- i18n/cli/fr.yml | 21 ++++---------------- lib/UI/Cli.rb | 52 ++++++++++++++++++++++++------------------------- 4 files changed, 35 insertions(+), 60 deletions(-) diff --git a/Gemfile b/Gemfile index d005d66..7046265 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,7 @@ gem 'highline' gem 'i18n', '0.6.9' gem 'locale' gem 'gpgme' +gem 'colorize' group :ssh do gem 'net-ssh' diff --git a/i18n/cli/en.yml b/i18n/cli/en.yml index dde1d7d..646671c 100644 --- a/i18n/cli/en.yml +++ b/i18n/cli/en.yml @@ -42,9 +42,9 @@ en: config: "Specify the configuration file to use" setup: "Create a new configuration file" protocol: "Select the items with the specified protocol" - export: "Export all items in a CSV file" + export: "Export all items in a file" type: "Data's type export file [csv|yaml]" - import: "Import item since a CSV file" + import: "Import item since a yaml or csv file" force: "Force an action" format: "Change the display items format by an alternative format" generate_password: "Generate a random password (default 8 characters)" @@ -107,21 +107,8 @@ en: port: "Enter the connection port [%{port}]: " comment: "Enter a comment [%{comment}]: " valid: "Item has been updated!" - - interactive: - ask_password: "Password GPG: " - bad_password: "Bad password!" - goodbye: "Goodbye!" - unknown_command: "Unknown command!" - option: - title: "Help" - show: "Search and show the results" - group: "Change the group for the search" - add: "Add an item" - update: "Update an item" - remove: "Remove an item" - help: "Show this message" - quit: "Quit the software" + export: + valid: "The export in %{file} is succesfull!" display: comment: "Comment" diff --git a/i18n/cli/fr.yml b/i18n/cli/fr.yml index 64e11ee..18f78af 100644 --- a/i18n/cli/fr.yml +++ b/i18n/cli/fr.yml @@ -42,9 +42,9 @@ fr: config: "Spécifie le fichier de configuration à utiliser" setup: "Création d'un nouveau fichier de configuration" protocol: "Sélectionne les éléments ayant le protocole spécifié" - export: "Exporte tous les éléments dans un fichier au format CSV" + export: "Exporte tous les éléments dans un fichier" type: "Format des données du fichier d'export [csv|yaml]" - import: "Importe des éléments depuis un fichier au format CSV" + import: "Importe des éléments depuis un fichier yaml ou csv" force: "Force une action, l'action ne demandera pas de confirmation" format: "Change le format d'affichage des éléments par un alternatif" generate_password: "Génére un mot de passe aléatoire (défaut 8 caractères)" @@ -107,21 +107,8 @@ fr: port: "Entrez un port de connexion [%{port}]: " comment: "Entrez un commentaire [%{comment}]: " valid: "L'élément a bien été mis à jour!" - - interactive: - ask_password: "Mot de passe GPG: " - bad_password: "Mauvais mot de passe!" - goodbye: "Au revoir!" - unknown_command: "Commande inconnue!" - option: - title: "Aide" - show: "Cherche et affiche les résulats" - group: "Change de groupe pour la recherche" - add: "Ajout un élément" - update: "Met à jour un élément" - remove: "Supprime un élément" - help: "Affiche ce message d'aide" - quit: "Quitte le programme" + export: + valid: "L'export dans %{file} est un succès!" display: comment: "Commentaire" diff --git a/lib/UI/Cli.rb b/lib/UI/Cli.rb index 765039d..af8719f 100644 --- a/lib/UI/Cli.rb +++ b/lib/UI/Cli.rb @@ -8,7 +8,7 @@ require 'highline/import' require 'pathname' require 'readline' require 'i18n' -require 'yaml' +require 'colorize' require "#{APP_ROOT}/lib/MPW" @@ -42,26 +42,26 @@ class Cli if not @config.sync_host.nil? and not @config.sync_port.nil? if not @sync.connect(@config.sync_host, @config.sync_user, @config.sync_pwd, @config.sync_path, @config.sync_port) - puts "#{I18n.t('display.error')} #1: #{@sync.error_msg}" + puts "#{I18n.t('display.error')} #1: #{@sync.error_msg}".red end end if @sync.enable if not @mpw.sync(@sync.get(@passwd), @config.last_update) - puts "#{I18n.t('display.error')} #2: #{@mpw.error_msg}" if not @mpw.error_msg.nil? - puts "#{I18n.t('display.error')} #3: #{@sync.error_msg}" if not @sync.error_msg.nil? + puts "#{I18n.t('display.error')} #2: #{@mpw.error_msg}".red if not @mpw.error_msg.nil? + puts "#{I18n.t('display.error')} #3: #{@sync.error_msg}".red if not @sync.error_msg.nil? elsif not @sync.update(File.open(@config.file_gpg).read) - puts "#{I18n.t('display.error')} #4: #{@sync.error_msg}" + puts "#{I18n.t('display.error')} #4: #{@sync.error_msg}".red elsif not @config.set_last_update - puts "#{I18n.t('display.error')} #5: #{@config.error_msg}" + puts "#{I18n.t('display.error')} #5: #{@config.error_msg}".red elsif not @mpw.encrypt - puts "#{I18n.t('display.error')} #6: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #6: #{@mpw.error_msg}".red else return true end end rescue Exception => e - puts "#{I18n.t('display.error')} #7: #{e}" + puts "#{I18n.t('display.error')} #7: #{e}".red puts @sync.error_msg if not @sync.error_msg.nil? puts @config.error_msg if not @config.error_msg.nil? puts @mpw.error_msg if not @mpw.error_msg.nil? @@ -101,14 +101,14 @@ class Cli sync_path = sync_path.nil? or sync_path.empty? ? nil : sync_path if @config.setup(key, share_keys, language, file_gpg, sync_type, sync_host, sync_port, sync_user, sync_pwd, sync_path) - puts I18n.t('form.setup.valid') + puts "#{I18n.t('form.setup.valid')}".green else - puts "#{I18n.t('display.error')} #8: #{@config.error_msg}" + puts "#{I18n.t('display.error')} #8: #{@config.error_msg}".red exit 2 end if not @config.checkconfig - puts "#{I18n.t('display.error')} #9: #{@config.error_msg}" + puts "#{I18n.t('display.error')} #9: #{@config.error_msg}".red exit 2 end end @@ -143,9 +143,9 @@ class Cli puts I18n.t('form.setup_gpg_key.wait') if @config.setup_gpg_key(password, name, length, expire) - puts I18n.t('form.setup_gpg_key.valid') + puts "#{I18n.t('form.setup_gpg_key.valid')}".green else - puts "#{I18n.t('display.error')} #10: #{@config.error_msg}" + puts "#{I18n.t('display.error')} #10: #{@config.error_msg}".red exit 2 end end @@ -158,7 +158,7 @@ class Cli @passwd = ask(I18n.t('display.gpg_password')) {|q| q.echo = false} if not @mpw.decrypt(@passwd) - puts "#{I18n.t('display.error')} #11: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #11: #{@mpw.error_msg}".red exit 2 end end @@ -230,12 +230,12 @@ class Cli if @mpw.update(name, group, server, protocol, login, passwd, port, comment) if @mpw.encrypt sync - puts I18n.t('form.add.valid') + puts "#{I18n.t('form.add.valid')}".green else - puts "#{I18n.t('display.error')} #12: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #12: #{@mpw.error_msg}".red end else - puts "#{I18n.t('display.error')} #13: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #13: #{@mpw.error_msg}".red end end @@ -259,12 +259,12 @@ class Cli if @mpw.update(name, group, server, protocol, login, passwd, port, comment, id) if @mpw.encrypt sync - puts I18n.t('form.update.valid') + puts "#{I18n.t('form.update.valid')}".green else - puts "#{I18n.t('display.error')} #14: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #14: #{@mpw.error_msg}".red end else - puts "#{I18n.t('display.error')} #15: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #15: #{@mpw.error_msg}".red end else puts I18n.t('display.nothing') @@ -294,9 +294,9 @@ class Cli if @mpw.remove(id) if @mpw.encrypt sync - puts I18n.t('form.delete.valid', id: id) + puts "#{I18n.t('form.delete.valid', id: id)}".green else - puts "#{I18n.t('display.error')} #16: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #16: #{@mpw.error_msg}".red end else puts I18n.t('form.delete.not_valid') @@ -308,9 +308,9 @@ class Cli # @args: file -> the destination file def export(file, type=:yaml) if @mpw.export(file, type) - puts "The export in #{file} is succesfull!" + puts "#{I18n.t('export.valid', file)}".green else - puts "#{I18n.t('display.error')} #17: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #17: #{@mpw.error_msg}".red end end @@ -339,9 +339,9 @@ class Cli if force if @mpw.import(file, type) and @mpw.encrypt sync - puts I18n.t('form.import.valid') + puts "#{I18n.t('form.import.valid')}".green else - puts "#{I18n.t('display.error')} #18: #{@mpw.error_msg}" + puts "#{I18n.t('display.error')} #18: #{@mpw.error_msg}".red end end end