hammer_cli 0.1.3 → 0.1.4

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.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/bin/hammer +3 -1
  3. data/config/cli_config.template.yml +3 -0
  4. data/doc/creating_commands.md +1 -1
  5. data/doc/installation.md +3 -2
  6. data/doc/release_notes.md +17 -0
  7. data/doc/writing_a_plugin.md +1 -1
  8. data/lib/hammer_cli/abstract.rb +46 -9
  9. data/lib/hammer_cli/apipie/command.rb +10 -1
  10. data/lib/hammer_cli/apipie/option_builder.rb +29 -11
  11. data/lib/hammer_cli/apipie/option_definition.rb +18 -0
  12. data/lib/hammer_cli/apipie/resource.rb +4 -22
  13. data/lib/hammer_cli/exception_handler.rb +18 -6
  14. data/lib/hammer_cli/exceptions.rb +1 -0
  15. data/lib/hammer_cli/i18n.rb +4 -0
  16. data/lib/hammer_cli/main.rb +2 -0
  17. data/lib/hammer_cli/modules.rb +30 -2
  18. data/lib/hammer_cli/options/matcher.rb +48 -0
  19. data/lib/hammer_cli/output/adapter.rb +3 -1
  20. data/lib/hammer_cli/output/adapter/csv.rb +5 -2
  21. data/lib/hammer_cli/output/adapter/json.rb +17 -0
  22. data/lib/hammer_cli/output/adapter/table.rb +11 -17
  23. data/lib/hammer_cli/output/adapter/tree_structure.rb +74 -0
  24. data/lib/hammer_cli/output/adapter/wrapper_formatter.rb +20 -0
  25. data/lib/hammer_cli/output/adapter/yaml.rb +16 -0
  26. data/lib/hammer_cli/shell.rb +3 -8
  27. data/lib/hammer_cli/utils.rb +10 -0
  28. data/lib/hammer_cli/version.rb +1 -1
  29. data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
  30. data/locale/de/hammer-cli.po +296 -0
  31. data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
  32. data/locale/en/hammer-cli.po +1 -1
  33. data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
  34. data/locale/en_GB/hammer-cli.po +133 -133
  35. data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
  36. data/locale/es/hammer-cli.po +148 -147
  37. data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
  38. data/locale/fr/hammer-cli.po +142 -141
  39. data/locale/hammer-cli.pot +39 -32
  40. data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
  41. data/locale/it/hammer-cli.po +293 -0
  42. data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
  43. data/locale/ja/hammer-cli.po +291 -0
  44. data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
  45. data/locale/ko/hammer-cli.po +292 -0
  46. data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
  47. data/locale/pt_BR/hammer-cli.po +294 -0
  48. data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
  49. data/locale/ru/hammer-cli.po +293 -0
  50. data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
  51. data/locale/zh_CN/hammer-cli.po +292 -0
  52. data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
  53. data/locale/zh_TW/hammer-cli.po +292 -0
  54. data/test/unit/apipie/command_test.rb +22 -0
  55. data/test/unit/apipie/option_builder_test.rb +21 -7
  56. data/test/unit/apipie/option_definition_test.rb +26 -0
  57. data/test/unit/fixtures/apipie/documented.json +26 -0
  58. data/test/unit/modules_test.rb +13 -2
  59. data/test/unit/options/matcher_test.rb +61 -0
  60. data/test/unit/output/adapter/json_test.rb +214 -0
  61. data/test/unit/output/adapter/table_test.rb +66 -0
  62. data/test/unit/output/adapter/yaml_test.rb +213 -0
  63. data/test/unit/utils_test.rb +17 -0
  64. metadata +249 -205
@@ -0,0 +1,48 @@
1
+
2
+ module HammerCLI
3
+ module Options
4
+
5
+ class Matcher
6
+
7
+ def initialize(filter)
8
+ @filter = filter
9
+ end
10
+
11
+ def matches?(option)
12
+ @filter.each do |attribute, filter|
13
+ return false if !attribute_matches?(option, attribute, filter)
14
+ end
15
+ return true
16
+ end
17
+
18
+ protected
19
+
20
+ def attribute_matches?(option, attribute, filter)
21
+ if filter.is_a? Array
22
+ return filter.any? {|filter_part| attribute_matches?(option, attribute, filter_part)}
23
+ elsif filter.is_a? Regexp
24
+ return attribute_matches_regexp?(option, attribute, filter)
25
+ else
26
+ return attribute_matches_value?(option, attribute, filter)
27
+ end
28
+ end
29
+
30
+ def attribute_matches_value?(option, attribute, filter)
31
+ get_attribute_value(option, attribute) == filter
32
+ end
33
+
34
+ def attribute_matches_regexp?(option, attribute, filter)
35
+ get_attribute_value(option, attribute) =~ filter
36
+ end
37
+
38
+ def get_attribute_value(option, attribute_name)
39
+ option.send(attribute_name)
40
+ rescue NoMethodError
41
+ nil
42
+ end
43
+
44
+ end
45
+
46
+
47
+ end
48
+ end
@@ -3,5 +3,7 @@ require File.join(File.dirname(__FILE__), 'adapter/base')
3
3
  require File.join(File.dirname(__FILE__), 'adapter/table')
4
4
  require File.join(File.dirname(__FILE__), 'adapter/silent')
5
5
  require File.join(File.dirname(__FILE__), 'adapter/csv')
6
-
6
+ require File.join(File.dirname(__FILE__), 'adapter/tree_structure')
7
+ require File.join(File.dirname(__FILE__), 'adapter/yaml')
8
+ require File.join(File.dirname(__FILE__), 'adapter/json')
7
9
 
@@ -8,6 +8,8 @@ else
8
8
  # CSV is now FasterCSV in ruby 1.9
9
9
  end
10
10
 
11
+ require File.join(File.dirname(__FILE__), 'wrapper_formatter')
12
+
11
13
  module HammerCLI::Output::Adapter
12
14
 
13
15
  class CSValues < Abstract
@@ -37,8 +39,9 @@ module HammerCLI::Output::Adapter
37
39
  end
38
40
 
39
41
  def formatted_value
40
- formatter = @formatters.formatter_for_type(@field_wrapper.field.class)
41
- formatter ? formatter.format(value) : value.to_s
42
+ WrapperFormatter.new(
43
+ @formatters.formatter_for_type(@field_wrapper.field.class),
44
+ @field_wrapper.field.parameters).format(value)
42
45
  end
43
46
 
44
47
  def self.values(headers, cells)
@@ -0,0 +1,17 @@
1
+ module HammerCLI::Output::Adapter
2
+ class Json < TreeStructure
3
+
4
+ def print_record(fields, record)
5
+ result = prepare_collection(fields, [record].flatten(1))
6
+ puts JSON.pretty_generate(result.first)
7
+ end
8
+
9
+ def print_collection(fields, collection)
10
+ result = prepare_collection(fields, collection)
11
+ puts JSON.pretty_generate(result)
12
+ end
13
+
14
+ end
15
+
16
+ HammerCLI::Output::Output.register_adapter(:json, Json)
17
+ end
@@ -1,24 +1,8 @@
1
1
  require 'table_print'
2
+ require File.join(File.dirname(__FILE__), 'wrapper_formatter')
2
3
 
3
4
  module HammerCLI::Output::Adapter
4
5
 
5
- class WrapperFormatter
6
-
7
- def initialize(formatter, params)
8
- @formatter = formatter
9
- @params = params
10
- end
11
-
12
- def format(value)
13
- if @formatter
14
- @formatter.format(value, @params)
15
- else
16
- value
17
- end
18
- end
19
-
20
- end
21
-
22
6
  class Table < Abstract
23
7
 
24
8
  MAX_COLUMN_WIDTH = 80
@@ -44,6 +28,12 @@ module HammerCLI::Output::Adapter
44
28
  row
45
29
  end
46
30
 
31
+ if rows.empty?
32
+ keys = fields.map { |f| [label_for(f), ''] }
33
+ rows = [Hash[keys]]
34
+ @header_only = true
35
+ end
36
+
47
37
  options = fields.collect do |f|
48
38
  { label_for(f) => {
49
39
  :width => max_width_for(f)
@@ -60,6 +50,10 @@ module HammerCLI::Output::Adapter
60
50
  output = sort_columns(printer.table_print, sort_order)
61
51
  dashes = /\n([-|]+)\n/.match(output)
62
52
 
53
+ if @header_only
54
+ output = output.lines.first
55
+ end
56
+
63
57
  puts dashes[1] if dashes
64
58
  puts output
65
59
  puts dashes[1] if dashes
@@ -0,0 +1,74 @@
1
+ module HammerCLI::Output::Adapter
2
+ class TreeStructure < Abstract
3
+
4
+ def prepare_collection(fields, collection)
5
+ collection.map do |element|
6
+ render_fields(fields, element)
7
+ end
8
+ end
9
+
10
+ protected
11
+ def field_filter
12
+ filtered = []
13
+ filtered << Fields::Id unless @context[:show_ids]
14
+ HammerCLI::Output::FieldFilter.new(filtered)
15
+ end
16
+
17
+ def filter_fields(fields, data)
18
+ field_filter.filter(fields).reject do |field|
19
+ field_data = data_for_field(field, data)
20
+ not field.display?(field_data)
21
+ end
22
+ end
23
+
24
+ def render_fields(fields, data)
25
+ fields = filter_fields(fields, data)
26
+
27
+ fields.reduce({}) do |hash, field|
28
+ field_data = data_for_field(field, data)
29
+ next unless field.display?(field_data)
30
+ hash.update(field.label => render_field(field, field_data))
31
+ end
32
+ end
33
+
34
+ def render_field(field, data)
35
+ if field.is_a? Fields::ContainerField
36
+ data = [data] unless data.is_a? Array
37
+ fields_data = data.map do |d|
38
+ render_fields(field.fields, d)
39
+ end
40
+ render_data(field, map_data(fields_data))
41
+ else
42
+ data
43
+ end
44
+ end
45
+
46
+ def render_data(field, data)
47
+ if field.is_a?(Fields::Collection)
48
+ if(field.parameters[:numbered])
49
+ numbered_data(data)
50
+ else # necislovana kolekce je pole
51
+ data
52
+ end
53
+ else
54
+ data.first
55
+ end
56
+ end
57
+
58
+ def map_data(data)
59
+ if data.any? { |d| d.key?(nil) }
60
+ data.map! { |d| d.values.first }
61
+ end
62
+ data
63
+ end
64
+
65
+ def numbered_data(data)
66
+ i = 0
67
+ data.inject({}) do |hash, value|
68
+ i += 1
69
+ hash.merge(i => value)
70
+ end
71
+ end
72
+
73
+ end
74
+ end
@@ -0,0 +1,20 @@
1
+ module HammerCLI::Output::Adapter
2
+
3
+ class WrapperFormatter
4
+
5
+ def initialize(formatter, params)
6
+ @formatter = formatter
7
+ @params = params
8
+ end
9
+
10
+ def format(value)
11
+ if @formatter
12
+ @formatter.format(value, @params)
13
+ else
14
+ value
15
+ end
16
+ end
17
+
18
+ end
19
+
20
+ end
@@ -0,0 +1,16 @@
1
+ module HammerCLI::Output::Adapter
2
+ class Yaml < TreeStructure
3
+
4
+ def print_record(fields, record)
5
+ result = prepare_collection(fields, [record].flatten(1))
6
+ puts YAML.dump(result.first)
7
+ end
8
+
9
+ def print_collection(fields, collection)
10
+ result = prepare_collection(fields, collection)
11
+ puts YAML.dump(result)
12
+ end
13
+
14
+ end
15
+ HammerCLI::Output::Output.register_adapter(:yaml, Yaml)
16
+ end
@@ -82,13 +82,9 @@ module HammerCLI
82
82
  def execute
83
83
  ShellMainCommand.load_commands(HammerCLI::MainCommand)
84
84
 
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
85
+ Readline.completion_append_character = ''
86
+ Readline.completer_word_break_characters = ' ='
87
+ Readline.completion_proc = complete_proc
92
88
 
93
89
  stty_save = `stty -g`.chomp
94
90
 
@@ -119,7 +115,6 @@ module HammerCLI
119
115
  def print_welcome_message
120
116
  print_message(_("Welcome to the hammer interactive shell"))
121
117
  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"
123
118
  end
124
119
 
125
120
  def common_prefix(results)
@@ -24,6 +24,16 @@ class String
24
24
  gsub(/^/, indent_str)
25
25
  end
26
26
 
27
+ def underscore
28
+ word = self.dup
29
+ word.gsub!(/::/, '/')
30
+ word.gsub!(/([A-Z]+)([A-Z][a-z])/,'\1_\2')
31
+ word.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
32
+ word.tr!("-", "_")
33
+ word.downcase!
34
+ word
35
+ end
36
+
27
37
  def constantize
28
38
  raise NameError, "Can't constantize empty string" if self.empty?
29
39
  HammerCLI.constant_path(self)[-1]
@@ -1,5 +1,5 @@
1
1
  module HammerCLI
2
2
  def self.version
3
- @version ||= Gem::Version.new '0.1.3'
3
+ @version ||= Gem::Version.new '0.1.4'
4
4
  end
5
5
  end
@@ -0,0 +1,296 @@
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
+ #
5
+ # Translators:
6
+ # Dominic Cleal <dcleal@redhat.com>, 2014
7
+ # Ettore Atalan <atalanttore@googlemail.com>, 2014
8
+ # simon11 <simon.stieger.98@live.de>, 2014
9
+ # simon11 <simon.stieger.98@live.de>, 2014
10
+ # Ulrich Habel <rhaen@pkgbox.de>, 2014
11
+ msgid ""
12
+ msgstr ""
13
+ "Project-Id-Version: hammer-cli 0.1.4\n"
14
+ "Report-Msgid-Bugs-To: \n"
15
+ "POT-Creation-Date: 2014-09-15 12:50+0100\n"
16
+ "PO-Revision-Date: 2014-09-16 16:54+0000\n"
17
+ "Last-Translator: Dominic Cleal <dcleal@redhat.com>\n"
18
+ "Language-Team: German (http://www.transifex.com/projects/p/foreman/language/de/)\n"
19
+ "MIME-Version: 1.0\n"
20
+ "Content-Type: text/plain; charset=UTF-8\n"
21
+ "Content-Transfer-Encoding: 8bit\n"
22
+ "Language: de\n"
23
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
24
+
25
+ #: lib/hammer_cli/subcommand.rb:56
26
+ msgid ""
27
+ "can't replace subcommand %<name>s (%<existing_class>s) with %<name>s "
28
+ "(%<new_class>s)"
29
+ msgstr ""
30
+
31
+ #: lib/hammer_cli/logger.rb:28
32
+ msgid "No permissions to create log dir %s"
33
+ msgstr "Keine Berechtigung zum Anlegen von Protokollverzeichnis %s"
34
+
35
+ #: lib/hammer_cli/logger.rb:43
36
+ msgid "File %s not writeable, won't log anything to the file!"
37
+ msgstr "Datei %s ist schreibgeschützt, in diese Datei kann nicht protokolliert werden!"
38
+
39
+ #: lib/hammer_cli/main.rb:7
40
+ msgid "be verbose"
41
+ msgstr "ausführliche Ausgabe"
42
+
43
+ #: lib/hammer_cli/main.rb:8
44
+ msgid "show debugging output "
45
+ msgstr "Debugausgabe anzeigen"
46
+
47
+ #: lib/hammer_cli/main.rb:9
48
+ msgid "path to custom config file"
49
+ msgstr "Pfad zur angepassten Konfigurationsdatei"
50
+
51
+ #: lib/hammer_cli/main.rb:11
52
+ msgid "username to access the remote system"
53
+ msgstr "Benutzername zum Zugriff auf das entfernte System"
54
+
55
+ #: lib/hammer_cli/main.rb:13
56
+ msgid "password to access the remote system"
57
+ msgstr "Passwort zum Zugriff auf das entfernte System"
58
+
59
+ #: lib/hammer_cli/main.rb:15
60
+ msgid "remote system address"
61
+ msgstr "Adresse des entfernten Systems"
62
+
63
+ #: lib/hammer_cli/main.rb:18
64
+ msgid "show version"
65
+ msgstr "Version anzeigen"
66
+
67
+ #: lib/hammer_cli/main.rb:27
68
+ msgid "Show ids of associated resources"
69
+ msgstr "IDs zugehöriger Ressourcen anzeigen"
70
+
71
+ #: lib/hammer_cli/main.rb:29
72
+ msgid "Explicitly turn interactive mode on/off"
73
+ msgstr "Interaktiven Modus explizit aktivieren/deaktivieren"
74
+
75
+ #: lib/hammer_cli/main.rb:33
76
+ msgid "Output as CSV (same as --output=csv)"
77
+ msgstr "Ausgabe als CSV (entspricht --output=csv)"
78
+
79
+ #: lib/hammer_cli/main.rb:34
80
+ msgid "Set output format. One of [%s]"
81
+ msgstr "Ausgabeformat festlegen. Einer von [%s]"
82
+
83
+ #: lib/hammer_cli/main.rb:37
84
+ msgid "Character to separate the values"
85
+ msgstr "Trennzeichen"
86
+
87
+ #: lib/hammer_cli/main.rb:41
88
+ msgid "Get list of possible endings"
89
+ msgstr "Liste möglicher Endungen abrufen"
90
+
91
+ #: lib/hammer_cli/validator.rb:41
92
+ msgid "Unknown option name '%s'"
93
+ msgstr "Unbekannter Optionsname '%s'"
94
+
95
+ #: lib/hammer_cli/validator.rb:62
96
+ msgid "You can't set all options %s at one time"
97
+ msgstr "Nicht alle Optionen %s sind gleichzeitig setzbar"
98
+
99
+ #: lib/hammer_cli/validator.rb:63
100
+ msgid "Options %s are required"
101
+ msgstr "Optionen %s sind erforderlich"
102
+
103
+ #: lib/hammer_cli/validator.rb:79
104
+ msgid "You can't set any of options %s"
105
+ msgstr "Sie können keine der Optionen %s festlegen"
106
+
107
+ #: lib/hammer_cli/validator.rb:80
108
+ msgid "At least one of options %s is required"
109
+ msgstr "Mindestens eine der Optionen %s ist erforderlich"
110
+
111
+ #: lib/hammer_cli/shell.rb:10
112
+ msgid "Print help for commands"
113
+ msgstr "Hilfe anzeigen"
114
+
115
+ #: lib/hammer_cli/shell.rb:22
116
+ msgid "Exit interactive shell"
117
+ msgstr "Interaktive Shell verlassen"
118
+
119
+ #: lib/hammer_cli/shell.rb:120
120
+ msgid "Welcome to the hammer interactive shell"
121
+ msgstr "Willkommen zur interaktiven Hammer-Shell"
122
+
123
+ #: lib/hammer_cli/shell.rb:121
124
+ msgid "Type 'help' for usage information"
125
+ msgstr "Geben Sie \"help\" ein, um Informationen zur Verwendung zu erhalten"
126
+
127
+ #: lib/hammer_cli/shell.rb:122
128
+ msgid ""
129
+ "Command completion is disabled on ruby < 1.9 due to compatibility problems."
130
+ msgstr "Die Befehlsergänzung unter ruby <1.9 wurde deaktiviert aufgrund von Kompatibilitätsproblemen."
131
+
132
+ #: lib/hammer_cli/shell.rb:138
133
+ msgid "Interactive shell"
134
+ msgstr "Interaktive Shell"
135
+
136
+ #: lib/hammer_cli/clamp.rb:5
137
+ msgid "too many arguments"
138
+ msgstr "Zu viele Argumente"
139
+
140
+ #: lib/hammer_cli/clamp.rb:6
141
+ msgid "option '%<option>s' is required"
142
+ msgstr "Option \"%<option>s\" ist erforderlich"
143
+
144
+ #: lib/hammer_cli/clamp.rb:7
145
+ msgid "option '%<option>s' (or env %<env>s) is required"
146
+ msgstr "Option \"%<option>s\" (oder Umgebung %<env>s) ist erforderlich"
147
+
148
+ #: lib/hammer_cli/clamp.rb:8
149
+ msgid "option '%<switch>s': %<message>s"
150
+ msgstr "Option '%<switch>s': %<message>en"
151
+
152
+ #: lib/hammer_cli/clamp.rb:9
153
+ msgid "parameter '%<param>s': %<message>s"
154
+ msgstr "Parameter '%<param>s': %<message>en"
155
+
156
+ #: lib/hammer_cli/clamp.rb:10
157
+ msgid "%<env>s: %<message>s"
158
+ msgstr "%<env>s: %<message>en"
159
+
160
+ #: lib/hammer_cli/clamp.rb:11
161
+ msgid "Unrecognised option '%<switch>s'"
162
+ msgstr "Unbekannte Option \"%<switch>s\""
163
+
164
+ #: lib/hammer_cli/clamp.rb:12
165
+ msgid "No such sub-command '%<name>s'"
166
+ msgstr "Unterbefehl \"%<name>s\" existiert nicht"
167
+
168
+ #: lib/hammer_cli/clamp.rb:13
169
+ msgid "no value provided"
170
+ msgstr "kein Wert geliefert"
171
+
172
+ #: lib/hammer_cli/options/option_definition.rb:68
173
+ msgid "Can be specified multiple times. "
174
+ msgstr "Kann mehrfach angegeben werden."
175
+
176
+ #: lib/hammer_cli/options/option_definition.rb:69
177
+ msgid "Default: "
178
+ msgstr "Standard: "
179
+
180
+ #: lib/hammer_cli/options/option_definition.rb:69
181
+ msgid ", or "
182
+ msgstr ", oder "
183
+
184
+ #: lib/hammer_cli/options/normalizers.rb:26
185
+ msgid "Comma-separated list of key=value."
186
+ msgstr "Kommagetrennte Liste mit Schlüssel-Wert-Paaren."
187
+
188
+ #: lib/hammer_cli/options/normalizers.rb:39
189
+ msgid "value must be defined as a comma-separated list of key=value"
190
+ msgstr "Wert muss als kommagetrennte Liste mit Schlüssel-Wert-Paaren definiert sein"
191
+
192
+ #: lib/hammer_cli/options/normalizers.rb:57
193
+ msgid "Comma separated list of values."
194
+ msgstr "Kommagetrennte Liste von Werten."
195
+
196
+ #: lib/hammer_cli/options/normalizers.rb:69
197
+ msgid "One of true/false, yes/no, 1/0."
198
+ msgstr "Eines von true/false, yes/no, 1/0."
199
+
200
+ #: lib/hammer_cli/options/normalizers.rb:79
201
+ msgid "value must be one of true/false, yes/no, 1/0"
202
+ msgstr "Gültige Werte sind true/false, yes/no, 1/0"
203
+
204
+ #: lib/hammer_cli/options/normalizers.rb:118
205
+ msgid "Unable to parse JSON input"
206
+ msgstr "JSON Eingabe nicht lesbar"
207
+
208
+ #: lib/hammer_cli/options/normalizers.rb:131
209
+ msgid "One of %s"
210
+ msgstr "Einer von %s"
211
+
212
+ #: lib/hammer_cli/options/normalizers.rb:138
213
+ msgid "value must be one of '%s'"
214
+ msgstr "Gültige Werte sind \"%s\""
215
+
216
+ #: lib/hammer_cli/options/normalizers.rb:157
217
+ msgid "Date and time in YYYY-MM-DD HH:MM:SS or ISO 8601 format"
218
+ msgstr "Datum und Uhrzeit im Format JJJJ-MM-TT HH:MM:SS oder ISO-8601-Format"
219
+
220
+ #: lib/hammer_cli/options/normalizers.rb:164
221
+ msgid "'%s' is not a valid date"
222
+ msgstr "'%s' ist kein gültiges Datum."
223
+
224
+ #: lib/hammer_cli/options/normalizers.rb:175
225
+ msgid "Any combination (comma separated list) of '%s'"
226
+ msgstr "Eine Kombination (kommagetrennte Liste) aus \"%s\""
227
+
228
+ #: lib/hammer_cli/options/normalizers.rb:195
229
+ msgid "value must be a combination of '%s'"
230
+ msgstr "Wert muss eine Kombination aus \"%s\" sein"
231
+
232
+ #: lib/hammer_cli/settings.rb:28
233
+ msgid ""
234
+ "Warning: location hammer.modules.d is deprecated, move your module "
235
+ "configurations to cli.modules.d"
236
+ msgstr "Warnung: Speicherort hammer.modules.d ist veraltet, verlegen Sie Ihre Modulkonfigurationen nach cli.modules.d"
237
+
238
+ #: lib/hammer_cli/exception_handler.rb:60
239
+ msgid "Error: %s"
240
+ msgstr "Fehler: %s"
241
+
242
+ #: lib/hammer_cli/exception_handler.rb:66
243
+ msgid "Error: %{message}"
244
+ msgstr "Fehler: %{message}"
245
+
246
+ #: lib/hammer_cli/exception_handler.rb:67
247
+ msgid "See: '%{path} --help'"
248
+ msgstr "Siehe: '%{path} --help'"
249
+
250
+ #: lib/hammer_cli/exception_handler.rb:84
251
+ msgid "Invalid username or password"
252
+ msgstr "Falscher Benutzername oder falsches Passwort"
253
+
254
+ #: lib/hammer_cli/exception_handler.rb:91
255
+ msgid "Could not load the API description from the server"
256
+ msgstr "Die API-Beschreibung konnte nicht vom Server geladen werden"
257
+
258
+ #: lib/hammer_cli/exception_handler.rb:92
259
+ msgid "is the server down?"
260
+ msgstr "ist der Server nicht verfügbar?"
261
+
262
+ #: lib/hammer_cli/exception_handler.rb:93
263
+ msgid ""
264
+ "was '%s' run on the server when using apipie cache? (typical production "
265
+ "settings)"
266
+ msgstr ""
267
+
268
+ #: lib/hammer_cli/output/formatters.rb:154
269
+ msgid "no"
270
+ msgstr "nein"
271
+
272
+ #: lib/hammer_cli/output/formatters.rb:154
273
+ msgid "yes"
274
+ msgstr "ja"
275
+
276
+ #: lib/hammer_cli/output/adapter/csv.rb:171
277
+ msgid "Message"
278
+ msgstr "Hinweis"
279
+
280
+ #: lib/hammer_cli/output/adapter/csv.rb:175
281
+ msgid "Id"
282
+ msgstr "Kennung"
283
+
284
+ #: lib/hammer_cli/output/adapter/csv.rb:180
285
+ msgid "Name"
286
+ msgstr "Name"
287
+
288
+ #: lib/hammer_cli/modules.rb:10
289
+ msgid ""
290
+ "Legacy configuration of modules detected. Check section about configuration "
291
+ "in user manual"
292
+ msgstr "Veraltete Konfiguration von Modulen entdeckt. Prüfen Sie den Abschnitt zum Thema Konfiguration im Benutzerhandbuch"
293
+
294
+ #: lib/hammer_cli/modules.rb:42
295
+ msgid "Warning: An error occured while loading module %s"
296
+ msgstr "Warnung: Beim Laden von Modul %s ist ein Fehler aufgetreten"