hammer_cli 0.0.18 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +3 -314
- data/bin/hammer +45 -6
- data/config/cli.modules.d/module_config_template.yml +4 -0
- data/config/cli_config.template.yml +9 -11
- data/doc/developer_docs.md +1 -0
- data/doc/i18n.md +85 -0
- data/doc/installation.md +321 -0
- data/lib/hammer_cli.rb +3 -0
- data/lib/hammer_cli/abstract.rb +15 -24
- data/lib/hammer_cli/apipie/command.rb +13 -7
- data/lib/hammer_cli/apipie/options.rb +14 -16
- data/lib/hammer_cli/apipie/read_command.rb +6 -1
- data/lib/hammer_cli/apipie/resource.rb +48 -58
- data/lib/hammer_cli/apipie/write_command.rb +5 -1
- data/lib/hammer_cli/completer.rb +77 -21
- data/lib/hammer_cli/connection.rb +44 -0
- data/lib/hammer_cli/exception_handler.rb +15 -4
- data/lib/hammer_cli/exceptions.rb +6 -0
- data/lib/hammer_cli/i18n.rb +95 -0
- data/lib/hammer_cli/logger.rb +3 -3
- data/lib/hammer_cli/main.rb +12 -11
- data/lib/hammer_cli/modules.rb +19 -6
- data/lib/hammer_cli/options/normalizers.rb +42 -7
- data/lib/hammer_cli/options/option_definition.rb +2 -2
- data/lib/hammer_cli/output.rb +1 -0
- data/lib/hammer_cli/output/adapter/abstract.rb +20 -0
- data/lib/hammer_cli/output/adapter/base.rb +49 -78
- data/lib/hammer_cli/output/adapter/csv.rb +5 -5
- data/lib/hammer_cli/output/adapter/table.rb +41 -10
- data/lib/hammer_cli/output/dsl.rb +1 -1
- data/lib/hammer_cli/output/field_filter.rb +21 -0
- data/lib/hammer_cli/output/fields.rb +44 -78
- data/lib/hammer_cli/output/formatters.rb +38 -0
- data/lib/hammer_cli/settings.rb +28 -6
- data/lib/hammer_cli/shell.rb +58 -57
- data/lib/hammer_cli/utils.rb +14 -0
- data/lib/hammer_cli/validator.rb +5 -5
- data/lib/hammer_cli/version.rb +1 -1
- data/locale/Makefile +64 -0
- data/locale/hammer-cli.pot +203 -0
- data/locale/zanata.xml +29 -0
- data/test/unit/apipie/command_test.rb +42 -25
- data/test/unit/apipie/read_command_test.rb +10 -7
- data/test/unit/apipie/write_command_test.rb +9 -8
- data/test/unit/completer_test.rb +206 -21
- data/test/unit/connection_test.rb +68 -0
- data/test/unit/fixtures/apipie/architectures.json +153 -0
- data/test/unit/fixtures/apipie/documented.json +79 -0
- data/test/unit/fixtures/json_input/invalid.json +12 -0
- data/test/unit/fixtures/json_input/valid.json +12 -0
- data/test/unit/history_test.rb +71 -0
- data/test/unit/main_test.rb +9 -0
- data/test/unit/modules_test.rb +22 -6
- data/test/unit/options/field_filter_test.rb +27 -0
- data/test/unit/options/normalizers_test.rb +53 -0
- data/test/unit/output/adapter/base_test.rb +162 -10
- data/test/unit/output/adapter/csv_test.rb +16 -3
- data/test/unit/output/adapter/table_test.rb +97 -13
- data/test/unit/output/dsl_test.rb +74 -6
- data/test/unit/output/fields_test.rb +93 -62
- data/test/unit/output/formatters_test.rb +47 -0
- data/test/unit/settings_test.rb +35 -4
- data/test/unit/utils_test.rb +45 -0
- metadata +85 -4
- data/test/unit/apipie/fake_api.rb +0 -101
@@ -109,10 +109,48 @@ module HammerCLI::Output
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
+
class KeyValueFormatter < FieldFormatter
|
113
|
+
|
114
|
+
def tags
|
115
|
+
[:screen, :flat]
|
116
|
+
end
|
117
|
+
|
118
|
+
def format(params)
|
119
|
+
if params.is_a? Hash
|
120
|
+
name = params[:name] || params["name"]
|
121
|
+
value = params[:value] || params["value"]
|
122
|
+
"#{name} => #{value}"
|
123
|
+
else
|
124
|
+
""
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
class LongTextFormatter < FieldFormatter
|
130
|
+
|
131
|
+
INDENT = " "
|
132
|
+
|
133
|
+
def initialize(options = {})
|
134
|
+
@indent = options[:indent].nil? ? true : options[:indent]
|
135
|
+
end
|
136
|
+
|
137
|
+
def tags
|
138
|
+
[:screen]
|
139
|
+
end
|
140
|
+
|
141
|
+
def format(text)
|
142
|
+
text = text.to_s.indent_with(INDENT) if @indent
|
143
|
+
"\n#{text}"
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
112
147
|
HammerCLI::Output::Output.register_formatter(DateFormatter.new, :Date)
|
113
148
|
HammerCLI::Output::Output.register_formatter(ListFormatter.new, :List)
|
149
|
+
HammerCLI::Output::Output.register_formatter(KeyValueFormatter.new, :KeyValue)
|
150
|
+
HammerCLI::Output::Output.register_formatter(LongTextFormatter.new, :LongText)
|
114
151
|
|
115
152
|
end
|
116
153
|
end
|
117
154
|
|
118
155
|
|
156
|
+
|
data/lib/hammer_cli/settings.rb
CHANGED
@@ -12,19 +12,37 @@ module HammerCLI
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
def self.
|
15
|
+
def self.load_from_paths(files)
|
16
16
|
files.reverse.each do |path|
|
17
17
|
full_path = File.expand_path path
|
18
|
-
if File.
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
if File.file? full_path
|
19
|
+
load_from_file(full_path)
|
20
|
+
elsif File.directory? full_path
|
21
|
+
# check for cli_config.yml
|
22
|
+
load_from_file(File.join(full_path, 'cli_config.yml'))
|
23
|
+
# load config for modules
|
24
|
+
Dir.glob(File.join(full_path, 'cli.modules.d/*.yml')).sort.each do |f|
|
25
|
+
load_from_file(f)
|
26
|
+
end
|
27
|
+
Dir.glob(File.join(full_path, 'hammer.modules.d/*.yml')).sort.each do |f|
|
28
|
+
warn _("Warning: location hammer.modules.d is deprecated, move your module configurations to cli.modules.d")
|
29
|
+
warn " #{f} -> #{f.gsub('hammer.modules.d', 'cli.modules.d')}"
|
30
|
+
load_from_file(f)
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
26
34
|
end
|
27
35
|
|
36
|
+
def self.load_from_file(file_path)
|
37
|
+
if File.file? file_path
|
38
|
+
config = YAML::load(File.open(file_path))
|
39
|
+
if config
|
40
|
+
load(config)
|
41
|
+
path_history << file_path
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
28
46
|
def self.load(settings_hash)
|
29
47
|
deep_merge!(settings, settings_hash)
|
30
48
|
end
|
@@ -34,6 +52,10 @@ module HammerCLI
|
|
34
52
|
path_history.clear
|
35
53
|
end
|
36
54
|
|
55
|
+
def self.dump
|
56
|
+
settings
|
57
|
+
end
|
58
|
+
|
37
59
|
def self.path_history
|
38
60
|
@path_history ||= []
|
39
61
|
@path_history
|
data/lib/hammer_cli/shell.rb
CHANGED
@@ -7,7 +7,7 @@ module HammerCLI
|
|
7
7
|
|
8
8
|
class HelpCommand < AbstractCommand
|
9
9
|
command_name "help"
|
10
|
-
desc "Print help for commands"
|
10
|
+
desc _("Print help for commands")
|
11
11
|
|
12
12
|
parameter "[COMMAND] ...", "command"
|
13
13
|
|
@@ -19,89 +19,89 @@ module HammerCLI
|
|
19
19
|
|
20
20
|
class ExitCommand < AbstractCommand
|
21
21
|
command_name "exit"
|
22
|
-
desc "Exit interactive shell"
|
22
|
+
desc _("Exit interactive shell")
|
23
23
|
|
24
24
|
def execute
|
25
25
|
exit HammerCLI::EX_OK
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
def self.load_commands(main_cls)
|
30
|
+
cmds = main_cls.recognised_subcommands.select do |sub_cmd|
|
31
|
+
!(sub_cmd.subcommand_class <= HammerCLI::ShellCommand)
|
32
|
+
end
|
33
|
+
self.recognised_subcommands.push(*cmds)
|
34
|
+
end
|
35
|
+
|
36
|
+
autoload_subcommands
|
37
|
+
end
|
32
38
|
|
33
|
-
class LoginCommand < AbstractCommand
|
34
|
-
command_name "login"
|
35
|
-
desc "Set credentials"
|
36
39
|
|
37
|
-
|
38
|
-
context[:username] = ask_username
|
39
|
-
context[:password] = ask_password
|
40
|
-
HammerCLI::EX_OK
|
41
|
-
end
|
42
|
-
end
|
40
|
+
class ShellHistory
|
43
41
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
def execute
|
49
|
-
context[:username] = nil
|
50
|
-
context[:password] = nil
|
51
|
-
|
52
|
-
if username(false)
|
53
|
-
print_message("Credentials deleted, using defaults now.")
|
54
|
-
print_message("You are logged in as [ %s ]." % username(false))
|
55
|
-
else
|
56
|
-
print_message("Credentials deleted.")
|
57
|
-
end
|
58
|
-
HammerCLI::EX_OK
|
59
|
-
end
|
60
|
-
end
|
42
|
+
def initialize(history_file_path)
|
43
|
+
@file_path = history_file_path
|
44
|
+
load
|
45
|
+
end
|
61
46
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
else
|
70
|
-
print_message("You are currently not logged in.\nUse 'auth login' to set credentials.")
|
71
|
-
end
|
72
|
-
HammerCLI::EX_OK
|
73
|
-
end
|
47
|
+
def push(line)
|
48
|
+
line.strip!
|
49
|
+
return if line.empty? or ingonred_commands.include?(line)
|
50
|
+
|
51
|
+
Readline::HISTORY.push(line)
|
52
|
+
File.open(file_path, "a") do |f|
|
53
|
+
f.puts(line)
|
74
54
|
end
|
55
|
+
end
|
75
56
|
|
76
|
-
|
57
|
+
def ingonred_commands
|
58
|
+
["exit"]
|
77
59
|
end
|
78
60
|
|
61
|
+
protected
|
79
62
|
|
80
|
-
def
|
81
|
-
|
82
|
-
|
63
|
+
def file_path
|
64
|
+
File.expand_path(@file_path)
|
65
|
+
end
|
66
|
+
|
67
|
+
def load
|
68
|
+
if File.exist?(file_path)
|
69
|
+
File.readlines(file_path).each do |line|
|
70
|
+
Readline::HISTORY.push(line.strip)
|
71
|
+
end
|
83
72
|
end
|
84
|
-
self.recognised_subcommands.push(*cmds)
|
85
73
|
end
|
86
74
|
|
87
|
-
autoload_subcommands
|
88
75
|
end
|
89
76
|
|
77
|
+
|
90
78
|
class ShellCommand < AbstractCommand
|
91
79
|
|
80
|
+
DEFAULT_HISTORY_FILE = "~/.hammer_history"
|
81
|
+
|
92
82
|
def execute
|
93
83
|
ShellMainCommand.load_commands(HammerCLI::MainCommand)
|
94
84
|
|
95
|
-
|
96
|
-
|
97
|
-
|
85
|
+
if RUBY_VERSION >= "1.9"
|
86
|
+
Readline.completion_append_character = ''
|
87
|
+
Readline.completer_word_break_characters = ' ='
|
88
|
+
Readline.completion_proc = complete_proc
|
89
|
+
else
|
90
|
+
Readline.completion_proc = lambda {}
|
91
|
+
end
|
98
92
|
|
99
93
|
stty_save = `stty -g`.chomp
|
100
94
|
|
95
|
+
history = ShellHistory.new(Settings.get(:ui, :history_file) || DEFAULT_HISTORY_FILE)
|
96
|
+
|
101
97
|
begin
|
102
98
|
print_welcome_message
|
103
|
-
while line = Readline.readline(prompt
|
104
|
-
|
99
|
+
while line = Readline.readline(prompt)
|
100
|
+
|
101
|
+
history.push(line)
|
102
|
+
|
103
|
+
line = HammerCLI::CompleterLine.new(line)
|
104
|
+
ShellMainCommand.run('', line, context) unless line.empty?
|
105
105
|
end
|
106
106
|
rescue Interrupt => e
|
107
107
|
puts
|
@@ -117,8 +117,9 @@ module HammerCLI
|
|
117
117
|
end
|
118
118
|
|
119
119
|
def print_welcome_message
|
120
|
-
print_message("Welcome to the hammer interactive shell")
|
121
|
-
print_message("Type 'help' for usage information")
|
120
|
+
print_message(_("Welcome to the hammer interactive shell"))
|
121
|
+
print_message(_("Type 'help' for usage information"))
|
122
|
+
print_message(_("Command completion is disabled on ruby < 1.9 due to compatibility problems.")) if RUBY_VERSION < "1.9"
|
122
123
|
end
|
123
124
|
|
124
125
|
def common_prefix(results)
|
@@ -134,5 +135,5 @@ module HammerCLI
|
|
134
135
|
|
135
136
|
end
|
136
137
|
|
137
|
-
HammerCLI::MainCommand.subcommand "shell", "Interactive shell", HammerCLI::ShellCommand
|
138
|
+
HammerCLI::MainCommand.subcommand "shell", _("Interactive shell"), HammerCLI::ShellCommand
|
138
139
|
end
|
data/lib/hammer_cli/utils.rb
CHANGED
@@ -20,4 +20,18 @@ class String
|
|
20
20
|
split('_').map{|e| e.capitalize}.join
|
21
21
|
end
|
22
22
|
|
23
|
+
def indent_with(indent_str)
|
24
|
+
gsub(/^/, indent_str)
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
module HammerCLI
|
30
|
+
|
31
|
+
def self.interactive?
|
32
|
+
return false unless STDOUT.tty?
|
33
|
+
return HammerCLI::Settings.get(:_params, :interactive) unless HammerCLI::Settings.get(:_params, :interactive).nil?
|
34
|
+
HammerCLI::Settings.get(:ui, :interactive) != false
|
35
|
+
end
|
36
|
+
|
23
37
|
end
|
data/lib/hammer_cli/validator.rb
CHANGED
@@ -38,7 +38,7 @@ module HammerCLI
|
|
38
38
|
|
39
39
|
def get_option(name)
|
40
40
|
name = name.to_s
|
41
|
-
raise "Unknown option name '%s'" % name unless @options.has_key? name
|
41
|
+
raise _("Unknown option name '%s'") % name unless @options.has_key? name
|
42
42
|
@options[name]
|
43
43
|
end
|
44
44
|
|
@@ -59,8 +59,8 @@ module HammerCLI
|
|
59
59
|
|
60
60
|
def initialize(options, to_check)
|
61
61
|
super(options, to_check)
|
62
|
-
@rejected_msg = "You can't set all options %s at one time"
|
63
|
-
@required_msg = "Options %s are required"
|
62
|
+
@rejected_msg = _("You can't set all options %s at one time")
|
63
|
+
@required_msg = _("Options %s are required")
|
64
64
|
end
|
65
65
|
|
66
66
|
def exist?
|
@@ -76,8 +76,8 @@ module HammerCLI
|
|
76
76
|
|
77
77
|
def initialize(options, to_check)
|
78
78
|
super(options, to_check)
|
79
|
-
@rejected_msg = "You can't set any of options %s"
|
80
|
-
@required_msg = "At least one of options %s is required"
|
79
|
+
@rejected_msg = _("You can't set any of options %s")
|
80
|
+
@required_msg = _("At least one of options %s is required")
|
81
81
|
end
|
82
82
|
|
83
83
|
def exist?
|
data/lib/hammer_cli/version.rb
CHANGED
data/locale/Makefile
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#
|
2
|
+
# Makefile for PO merging and MO generation. More info in the README.
|
3
|
+
#
|
4
|
+
# make all-mo (default) - generate MO files
|
5
|
+
# make check - check translations using translate-tool
|
6
|
+
# make tx-update - download and merge translations from Transifex
|
7
|
+
# make clean - clean everything
|
8
|
+
#
|
9
|
+
DOMAIN = hammer-cli
|
10
|
+
POTFILE = $(DOMAIN).pot
|
11
|
+
MOFILE = $(DOMAIN).mo
|
12
|
+
POFILES = $(shell find . -name '*.po')
|
13
|
+
MOFILES = $(patsubst %.po,%.mo,$(POFILES))
|
14
|
+
POXFILES = $(patsubst %.po,%.pox,$(POFILES))
|
15
|
+
|
16
|
+
%.mo: %.po
|
17
|
+
mkdir -p $(shell dirname $@)/LC_MESSAGES
|
18
|
+
msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
|
19
|
+
|
20
|
+
# Generate MO files from PO files
|
21
|
+
all-mo: $(MOFILES)
|
22
|
+
|
23
|
+
# Check for malformed strings
|
24
|
+
%.pox: %.po
|
25
|
+
msgfmt -c $<
|
26
|
+
pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
|
27
|
+
-t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
|
28
|
+
cat $@
|
29
|
+
! grep -q msgid $@
|
30
|
+
|
31
|
+
check: $(POXFILES)
|
32
|
+
msgfmt -c ${POTFILE}
|
33
|
+
|
34
|
+
# Merge PO files
|
35
|
+
update-po:
|
36
|
+
for f in $(shell find ./ -name "*.po") ; do \
|
37
|
+
msgmerge -N --backup=none -U $$f ${POTFILE} ; \
|
38
|
+
done
|
39
|
+
|
40
|
+
# Unify duplicate translations
|
41
|
+
uniq-po:
|
42
|
+
for f in $(shell find ./ -name "*.po") ; do \
|
43
|
+
msguniq $$f -o $$f ; \
|
44
|
+
done
|
45
|
+
|
46
|
+
tx-pull:
|
47
|
+
tx pull -f
|
48
|
+
-git commit -a -m "i18n - extracting new, pulling from tx"
|
49
|
+
|
50
|
+
extract-strings:
|
51
|
+
bundle exec rake locale:find DOMAIN=$(DOMAIN) SKIP_MODEL=1
|
52
|
+
|
53
|
+
tx-update: tx-pull extract-strings
|
54
|
+
# merging po files is unnecessary when using transifex.com (amend that)
|
55
|
+
git checkout -- ../locale/*/*po
|
56
|
+
git commit -a --amend -m "i18n - extracting new, pulling from tx"
|
57
|
+
-echo Changes commited!
|
58
|
+
|
59
|
+
# Remove all MO files
|
60
|
+
clean:
|
61
|
+
-rm -f messages.mo
|
62
|
+
find . \( -name "*.mo" -o -name "*.pox" \) -exec rm -f '{}' ';'
|
63
|
+
find . -path *LC_MESSAGES | xargs rm -rf
|
64
|
+
|
@@ -0,0 +1,203 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3
|
+
# This file is distributed under the same license as the hammer-cli package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: hammer-cli 0.0.18\n"
|
10
|
+
"Report-Msgid-Bugs-To: \n"
|
11
|
+
"POT-Creation-Date: 2014-03-05 20:36+0000\n"
|
12
|
+
"PO-Revision-Date: 2014-03-04 16:38+0000\n"
|
13
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15
|
+
"MIME-Version: 1.0\n"
|
16
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
17
|
+
"Content-Transfer-Encoding: 8bit\n"
|
18
|
+
"Language: \n"
|
19
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
20
|
+
|
21
|
+
#: lib/hammer_cli/modules.rb:31
|
22
|
+
msgid "Warning: An error occured while loading module %s"
|
23
|
+
msgstr ""
|
24
|
+
|
25
|
+
#: lib/hammer_cli/output/adapter/csv.rb:47
|
26
|
+
msgid "Message"
|
27
|
+
msgstr ""
|
28
|
+
|
29
|
+
#: lib/hammer_cli/output/adapter/csv.rb:51
|
30
|
+
msgid "Id"
|
31
|
+
msgstr ""
|
32
|
+
|
33
|
+
#: lib/hammer_cli/output/adapter/csv.rb:56
|
34
|
+
msgid "Name"
|
35
|
+
msgstr ""
|
36
|
+
|
37
|
+
#: lib/hammer_cli/shell.rb:10
|
38
|
+
msgid "Print help for commands"
|
39
|
+
msgstr ""
|
40
|
+
|
41
|
+
#: lib/hammer_cli/shell.rb:22
|
42
|
+
msgid "Exit interactive shell"
|
43
|
+
msgstr ""
|
44
|
+
|
45
|
+
#: lib/hammer_cli/shell.rb:116
|
46
|
+
msgid "Welcome to the hammer interactive shell"
|
47
|
+
msgstr ""
|
48
|
+
|
49
|
+
#: lib/hammer_cli/shell.rb:117
|
50
|
+
msgid "Type 'help' for usage information"
|
51
|
+
msgstr ""
|
52
|
+
|
53
|
+
#: lib/hammer_cli/shell.rb:133
|
54
|
+
msgid "Interactive shell"
|
55
|
+
msgstr ""
|
56
|
+
|
57
|
+
#: lib/hammer_cli/options/normalizers.rb:26
|
58
|
+
msgid "Comma-separated list of key=value."
|
59
|
+
msgstr ""
|
60
|
+
|
61
|
+
#: lib/hammer_cli/options/normalizers.rb:35
|
62
|
+
msgid "value must be defined as a comma-separated list of key=value"
|
63
|
+
msgstr ""
|
64
|
+
|
65
|
+
#: lib/hammer_cli/options/normalizers.rb:46
|
66
|
+
msgid "Comma separated list of values."
|
67
|
+
msgstr ""
|
68
|
+
|
69
|
+
#: lib/hammer_cli/options/normalizers.rb:58
|
70
|
+
msgid "One of true/false, yes/no, 1/0."
|
71
|
+
msgstr ""
|
72
|
+
|
73
|
+
#: lib/hammer_cli/options/normalizers.rb:68
|
74
|
+
msgid "value must be one of true/false, yes/no, 1/0"
|
75
|
+
msgstr ""
|
76
|
+
|
77
|
+
#: lib/hammer_cli/options/normalizers.rb:107
|
78
|
+
msgid "Unable to parse JSON input"
|
79
|
+
msgstr ""
|
80
|
+
|
81
|
+
#: lib/hammer_cli/options/normalizers.rb:120
|
82
|
+
msgid "One of %s"
|
83
|
+
msgstr ""
|
84
|
+
|
85
|
+
#: lib/hammer_cli/options/normalizers.rb:127
|
86
|
+
msgid "value must be one of '%s'"
|
87
|
+
msgstr ""
|
88
|
+
|
89
|
+
#: lib/hammer_cli/options/normalizers.rb:146
|
90
|
+
msgid "Date and time in YYYY-MM-DD HH:MM:SS or ISO 8601 format"
|
91
|
+
msgstr ""
|
92
|
+
|
93
|
+
#: lib/hammer_cli/options/normalizers.rb:153
|
94
|
+
msgid "'%s' is not a valid date"
|
95
|
+
msgstr ""
|
96
|
+
|
97
|
+
#: lib/hammer_cli/options/option_definition.rb:62
|
98
|
+
msgid "Can be specified multiple times. "
|
99
|
+
msgstr ""
|
100
|
+
|
101
|
+
#: lib/hammer_cli/options/option_definition.rb:63
|
102
|
+
msgid "Default: "
|
103
|
+
msgstr ""
|
104
|
+
|
105
|
+
#: lib/hammer_cli/options/option_definition.rb:63
|
106
|
+
msgid ", or "
|
107
|
+
msgstr ""
|
108
|
+
|
109
|
+
#: lib/hammer_cli/apipie/command.rb:68
|
110
|
+
msgid "resource id"
|
111
|
+
msgstr ""
|
112
|
+
|
113
|
+
#: lib/hammer_cli/apipie/command.rb:69
|
114
|
+
msgid "resource name"
|
115
|
+
msgstr ""
|
116
|
+
|
117
|
+
#: lib/hammer_cli/apipie/command.rb:70
|
118
|
+
msgid "resource label"
|
119
|
+
msgstr ""
|
120
|
+
|
121
|
+
#: lib/hammer_cli/apipie/command.rb:94
|
122
|
+
msgid "%{resource} with %{option} '%{value}' not found"
|
123
|
+
msgstr ""
|
124
|
+
|
125
|
+
#: lib/hammer_cli/apipie/command.rb:95
|
126
|
+
msgid "%{resource} with %{option} '%{value}' found more than once"
|
127
|
+
msgstr ""
|
128
|
+
|
129
|
+
#: lib/hammer_cli/validator.rb:41
|
130
|
+
msgid "Unknown option name '%s'"
|
131
|
+
msgstr ""
|
132
|
+
|
133
|
+
#: lib/hammer_cli/validator.rb:62
|
134
|
+
msgid "You can't set all options %s at one time"
|
135
|
+
msgstr ""
|
136
|
+
|
137
|
+
#: lib/hammer_cli/validator.rb:63
|
138
|
+
msgid "Options %s are required"
|
139
|
+
msgstr ""
|
140
|
+
|
141
|
+
#: lib/hammer_cli/validator.rb:79
|
142
|
+
msgid "You can't set any of options %s"
|
143
|
+
msgstr ""
|
144
|
+
|
145
|
+
#: lib/hammer_cli/validator.rb:80
|
146
|
+
msgid "At least one of options %s is required"
|
147
|
+
msgstr ""
|
148
|
+
|
149
|
+
#: lib/hammer_cli/main.rb:7
|
150
|
+
msgid "be verbose"
|
151
|
+
msgstr ""
|
152
|
+
|
153
|
+
#: lib/hammer_cli/main.rb:8
|
154
|
+
msgid "path to custom config file"
|
155
|
+
msgstr ""
|
156
|
+
|
157
|
+
#: lib/hammer_cli/main.rb:10
|
158
|
+
msgid "username to access the remote system"
|
159
|
+
msgstr ""
|
160
|
+
|
161
|
+
#: lib/hammer_cli/main.rb:12
|
162
|
+
msgid "password to access the remote system"
|
163
|
+
msgstr ""
|
164
|
+
|
165
|
+
#: lib/hammer_cli/main.rb:15
|
166
|
+
msgid "show version"
|
167
|
+
msgstr ""
|
168
|
+
|
169
|
+
#: lib/hammer_cli/main.rb:24
|
170
|
+
msgid "Show ids of associated resources"
|
171
|
+
msgstr ""
|
172
|
+
|
173
|
+
#: lib/hammer_cli/main.rb:26
|
174
|
+
msgid "Explicitly turn interactive mode on/off"
|
175
|
+
msgstr ""
|
176
|
+
|
177
|
+
#: lib/hammer_cli/main.rb:30
|
178
|
+
msgid "Output as CSV (same as --output=csv)"
|
179
|
+
msgstr ""
|
180
|
+
|
181
|
+
#: lib/hammer_cli/main.rb:31
|
182
|
+
msgid "Set output format. One of [%s]"
|
183
|
+
msgstr ""
|
184
|
+
|
185
|
+
#: lib/hammer_cli/main.rb:34
|
186
|
+
msgid "Character to separate the values"
|
187
|
+
msgstr ""
|
188
|
+
|
189
|
+
#: lib/hammer_cli/main.rb:38
|
190
|
+
msgid "Get list of possible endings"
|
191
|
+
msgstr ""
|
192
|
+
|
193
|
+
#: lib/hammer_cli/exception_handler.rb:59
|
194
|
+
msgid "Error: %s"
|
195
|
+
msgstr ""
|
196
|
+
|
197
|
+
#: lib/hammer_cli/exception_handler.rb:65
|
198
|
+
msgid "Error: %s\\n\\nSee: '%s --help'"
|
199
|
+
msgstr ""
|
200
|
+
|
201
|
+
#: lib/hammer_cli/exception_handler.rb:82
|
202
|
+
msgid "Invalid username or password"
|
203
|
+
msgstr ""
|