hammer_cli 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -5
  3. data/config/cli_config.template.yml +12 -3
  4. data/doc/creating_apipie_commands.md +53 -56
  5. data/doc/creating_commands.md +25 -19
  6. data/doc/developer_docs.md +3 -2
  7. data/doc/development_tips.md +3 -3
  8. data/doc/i18n.md +3 -3
  9. data/doc/installation.md +24 -207
  10. data/doc/installation_deb.md +48 -0
  11. data/doc/installation_gem.md +30 -0
  12. data/doc/installation_rpm.md +53 -0
  13. data/doc/installation_source.md +31 -0
  14. data/doc/option_builders.md +77 -0
  15. data/doc/option_normalizers.md +5 -5
  16. data/doc/writing_a_plugin.md +9 -9
  17. data/lib/hammer_cli.rb +1 -0
  18. data/lib/hammer_cli/abstract.rb +21 -8
  19. data/lib/hammer_cli/apipie.rb +1 -2
  20. data/lib/hammer_cli/apipie/command.rb +37 -64
  21. data/lib/hammer_cli/apipie/option_builder.rb +69 -0
  22. data/lib/hammer_cli/apipie/options.rb +1 -61
  23. data/lib/hammer_cli/clamp.rb +15 -0
  24. data/lib/hammer_cli/i18n.rb +14 -2
  25. data/lib/hammer_cli/logger.rb +1 -1
  26. data/lib/hammer_cli/option_builder.rb +43 -0
  27. data/lib/hammer_cli/options/option_definition.rb +6 -0
  28. data/lib/hammer_cli/output/adapter/abstract.rb +2 -2
  29. data/lib/hammer_cli/output/adapter/base.rb +6 -3
  30. data/lib/hammer_cli/output/adapter/table.rb +19 -2
  31. data/lib/hammer_cli/output/definition.rb +4 -0
  32. data/lib/hammer_cli/output/fields.rb +9 -0
  33. data/lib/hammer_cli/output/formatters.rb +20 -8
  34. data/lib/hammer_cli/utils.rb +1 -1
  35. data/lib/hammer_cli/version.rb +1 -1
  36. data/locale/hammer-cli.pot +103 -79
  37. data/test/unit/abstract_test.rb +62 -0
  38. data/test/unit/apipie/command_test.rb +12 -197
  39. data/test/unit/apipie/option_builder_test.rb +110 -0
  40. data/test/unit/i18n_test.rb +50 -0
  41. data/test/unit/option_builder_test.rb +33 -0
  42. data/test/unit/output/adapter/abstract_test.rb +26 -3
  43. data/test/unit/output/adapter/base_test.rb +20 -3
  44. data/test/unit/output/adapter/csv_test.rb +2 -2
  45. data/test/unit/output/adapter/table_test.rb +24 -1
  46. data/test/unit/output/definition_test.rb +13 -0
  47. data/test/unit/output/formatters_test.rb +17 -1
  48. data/test/unit/utils_test.rb +1 -1
  49. metadata +101 -88
  50. data/lib/hammer_cli/apipie/read_command.rb +0 -41
  51. data/lib/hammer_cli/apipie/write_command.rb +0 -49
  52. data/test/unit/apipie/read_command_test.rb +0 -37
  53. data/test/unit/apipie/write_command_test.rb +0 -41
@@ -2,10 +2,6 @@
2
2
  module HammerCLI::Apipie
3
3
  module Options
4
4
 
5
- def self.included(base)
6
- base.extend(ClassMethods)
7
- end
8
-
9
5
  def all_method_options
10
6
  method_options_for_params(resource.action(action).params, true)
11
7
  end
@@ -23,6 +19,7 @@ module HammerCLI::Apipie
23
19
  opts[p.name] = get_option_value(p.name)
24
20
  end
25
21
  end
22
+
26
23
  opts.reject! {|key, value| value.nil? } unless include_nil
27
24
  opts
28
25
  end
@@ -35,62 +32,5 @@ module HammerCLI::Apipie
35
32
  end
36
33
  end
37
34
 
38
- module ClassMethods
39
-
40
- def apipie_options(options={})
41
- setup_identifier_options
42
- if resource_defined?
43
- filter = options[:without] || []
44
- filter = Array(filter)
45
- filter += declared_identifiers.keys
46
-
47
- options_for_params(resource.action(action).params, filter)
48
- end
49
- end
50
-
51
- protected
52
-
53
- def options_for_params(params, filter)
54
- params.each do |p|
55
- next if filter.include?(p.name) || filter.include?(p.name.to_sym)
56
- if p.expected_type == :hash
57
- options_for_params(p.params, filter)
58
- else
59
- create_option p
60
- end
61
- end
62
- end
63
-
64
- def create_option(param)
65
- option(
66
- option_switches(param),
67
- option_type(param),
68
- option_desc(param),
69
- option_opts(param)
70
- )
71
- end
72
-
73
- def option_switches(param)
74
- '--' + param.name.gsub('_', '-')
75
- end
76
-
77
- def option_type(param)
78
- param.name.upcase.gsub('-', '_')
79
- end
80
-
81
- def option_desc(param)
82
- param.description || " "
83
- end
84
-
85
- def option_opts(param)
86
- opts = {}
87
- opts[:required] = true if param.required?
88
- # FIXME: There is a bug in apipie, it does not produce correct expected type for Arrays
89
- # When it's fixed, we should test param["expected_type"] == "array"
90
- opts[:format] = HammerCLI::Options::Normalizers::List.new if param.validator.include? "Array"
91
- return opts
92
- end
93
-
94
- end
95
35
  end
96
36
  end
@@ -0,0 +1,15 @@
1
+ require 'clamp'
2
+
3
+ if Clamp.respond_to?(:messages=)
4
+ Clamp.messages = {
5
+ :too_many_arguments => _("too many arguments"),
6
+ :option_required => _("option '%<option>s' is required"),
7
+ :option_or_env_required => _("option '%<option>s' (or env %<env>s) is required"),
8
+ :option_argument_error => _("option '%<switch>s': %<message>s"),
9
+ :parameter_argument_error => _("parameter '%<param>s': %<message>s"),
10
+ :env_argument_error => _("%<env>s: %<message>s"),
11
+ :unrecognised_option => _("Unrecognised option '%<switch>s'"),
12
+ :no_such_subcommand => _("No such sub-command '%<name>s'"),
13
+ :no_value_provided => _("no value provided")
14
+ }
15
+ end
@@ -37,6 +37,10 @@ module HammerCLI
37
37
  :mo
38
38
  end
39
39
 
40
+ def available?
41
+ File.exist?(locale_dir)
42
+ end
43
+
40
44
  attr_reader :locale_dir, :domain_name
41
45
  end
42
46
 
@@ -76,12 +80,20 @@ module HammerCLI
76
80
  @domains
77
81
  end
78
82
 
83
+
79
84
  def self.add_domain(domain)
80
- domains << domain
81
- FastGettext.add_text_domain(domain.domain_name, :path => domain.locale_dir, :type => domain.type, :report_warning => false)
85
+ if domain.available?
86
+ domains << domain
87
+ FastGettext.add_text_domain(domain.domain_name, :path => domain.locale_dir, :type => domain.type, :report_warning => false)
88
+ end
82
89
  end
83
90
 
84
91
 
92
+ def self.clear
93
+ FastGettext.translation_repositories.clear
94
+ domains.clear
95
+ end
96
+
85
97
  Encoding.default_external='UTF-8' if defined? Encoding
86
98
  FastGettext.locale = locale
87
99
 
@@ -36,7 +36,7 @@ module HammerCLI
36
36
  :layout => NOCOLOR_LAYOUT,
37
37
  :truncate => false,
38
38
  :keep => 5,
39
- :size => HammerCLI::Settings.get(:log_size) || 1024*1024) # 1MB
39
+ :size => (HammerCLI::Settings.get(:log_size) || 1)*1024*1024) # 1MB
40
40
  # set owner and group (it's ignored if attribute is nil)
41
41
  FileUtils.chown HammerCLI::Settings.get(:log_owner), HammerCLI::Settings.get(:log_group), filename
42
42
  rescue ArgumentError => e
@@ -0,0 +1,43 @@
1
+
2
+ module HammerCLI
3
+
4
+ class AbstractOptionBuilder
5
+
6
+ def build(builder_params={})
7
+ end
8
+
9
+ protected
10
+
11
+ def option(*args)
12
+ HammerCLI::Options::OptionDefinition.new(*args)
13
+ end
14
+
15
+ def optionamize(name_candidate)
16
+ name_candidate.gsub('_', '-')
17
+ end
18
+
19
+ end
20
+
21
+
22
+ class OptionBuilderContainer < AbstractOptionBuilder
23
+
24
+ def build(builder_params={})
25
+ options = []
26
+ builders.each do |b|
27
+ options += b.build(builder_params)
28
+ end
29
+ options
30
+ end
31
+
32
+ def builders
33
+ @builders ||= []
34
+ @builders
35
+ end
36
+
37
+ def builders=(builders)
38
+ @builders=builders
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -21,6 +21,12 @@ module HammerCLI
21
21
  attr_accessor :value_formatter
22
22
  attr_accessor :context_target
23
23
 
24
+ def initialize(switches, type, description, options = {})
25
+ self.value_formatter = options.delete(:format)
26
+ self.context_target = options.delete(:context_target)
27
+ super
28
+ end
29
+
24
30
  def complete(value)
25
31
  if value_formatter.nil?
26
32
  []
@@ -45,9 +45,9 @@ module HammerCLI::Output::Adapter
45
45
  path = field.path
46
46
 
47
47
  path.inject(record) do |record, path_key|
48
- if record.has_key? path_key.to_sym
48
+ if record && record.kind_of?(Hash) && record.has_key?(path_key.to_sym)
49
49
  record[path_key.to_sym]
50
- elsif record.has_key? path_key.to_s
50
+ elsif record && record.kind_of?(Hash) && record.has_key?(path_key.to_s)
51
51
  record[path_key.to_s]
52
52
  else
53
53
  return nil
@@ -52,7 +52,6 @@ module HammerCLI::Output::Adapter
52
52
  end
53
53
 
54
54
  def render_field(field, data, label_width)
55
-
56
55
  if field.is_a? Fields::ContainerField
57
56
  output = ""
58
57
 
@@ -61,7 +60,9 @@ module HammerCLI::Output::Adapter
61
60
  data.each do |d|
62
61
  idx += 1
63
62
  fields_output = render_fields(field.fields, d).indent_with(GROUP_INDENT)
64
- fields_output = fields_output.sub(/^[ ]{4}/, " %-3s" % "#{idx})") if field.is_a? Fields::Collection
63
+ if field.is_a?(Fields::Collection) && field.parameters[:numbered]
64
+ fields_output = fields_output.sub(/^[ ]{4}/, " %-3s" % "#{idx})")
65
+ end
65
66
 
66
67
  output += fields_output
67
68
  output += "\n"
@@ -84,7 +85,9 @@ module HammerCLI::Output::Adapter
84
85
 
85
86
  def render_value(field, data)
86
87
  formatter = @formatters.formatter_for_type(field.class)
87
- data = formatter.format(data) if formatter
88
+ parameters = field.parameters
89
+ parameters[:context] = @context
90
+ data = formatter.format(data, field.parameters) if formatter
88
91
  data.to_s
89
92
  end
90
93
 
@@ -2,6 +2,23 @@ require 'table_print'
2
2
 
3
3
  module HammerCLI::Output::Adapter
4
4
 
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
+
5
22
  class Table < Abstract
6
23
 
7
24
  MAX_COLUMN_WIDTH = 80
@@ -21,14 +38,14 @@ module HammerCLI::Output::Adapter
21
38
  rows = collection.collect do |d|
22
39
  row = {}
23
40
  fields.each do |f|
24
- row[label_for(f)] = data_for_field(f, d) || ""
41
+ row[label_for(f)] = WrapperFormatter.new(
42
+ @formatters.formatter_for_type(f.class), f.parameters).format(data_for_field(f, d) || "")
25
43
  end
26
44
  row
27
45
  end
28
46
 
29
47
  options = fields.collect do |f|
30
48
  { label_for(f) => {
31
- :formatters => Array(@formatters.formatter_for_type(f.class)),
32
49
  :width => max_width_for(f)
33
50
  }
34
51
  }
@@ -12,6 +12,10 @@ module HammerCLI::Output
12
12
  @fields += fields
13
13
  end
14
14
 
15
+ def empty?
16
+ @fields.empty?
17
+ end
18
+
15
19
  end
16
20
 
17
21
  end
@@ -84,6 +84,15 @@ module Fields
84
84
  end
85
85
 
86
86
  class Collection < ContainerField
87
+
88
+ def initialize(options={}, &block)
89
+ options[:numbered] = true if options[:numbered].nil?
90
+ super(options, &block)
91
+ end
92
+
93
+ end
94
+
95
+ class Boolean < Field
87
96
  end
88
97
 
89
98
  end
@@ -43,7 +43,7 @@ module HammerCLI::Output
43
43
  tags & other_tags == tags
44
44
  end
45
45
 
46
- def format(data)
46
+ def format(data, field_params={})
47
47
  data
48
48
  end
49
49
  end
@@ -58,8 +58,8 @@ module HammerCLI::Output
58
58
  @formatters += formatters
59
59
  end
60
60
 
61
- def format(data)
62
- @formatters.inject(data) { |d,f| f.format(d) }
61
+ def format(data, field_params={})
62
+ @formatters.inject(data) { |d,f| f.format(d, field_params) }
63
63
  end
64
64
 
65
65
  end
@@ -73,7 +73,7 @@ module HammerCLI::Output
73
73
  [:screen, :flat]
74
74
  end
75
75
 
76
- def format(data)
76
+ def format(data, field_params={})
77
77
  c = HighLine.color(data.to_s, @color)
78
78
  end
79
79
  end
@@ -84,7 +84,7 @@ module HammerCLI::Output
84
84
  [:flat]
85
85
  end
86
86
 
87
- def format(string_date)
87
+ def format(string_date, field_params={})
88
88
  t = DateTime.parse(string_date.to_s)
89
89
  t.strftime("%Y/%m/%d %H:%M:%S")
90
90
  rescue ArgumentError
@@ -98,7 +98,7 @@ module HammerCLI::Output
98
98
  [:flat]
99
99
  end
100
100
 
101
- def format(list)
101
+ def format(list, field_params={})
102
102
  if list.is_a? Array
103
103
  list.join(", ")
104
104
  elsif list
@@ -115,7 +115,7 @@ module HammerCLI::Output
115
115
  [:screen, :flat]
116
116
  end
117
117
 
118
- def format(params)
118
+ def format(params, field_params={})
119
119
  if params.is_a? Hash
120
120
  name = params[:name] || params["name"]
121
121
  value = params[:value] || params["value"]
@@ -138,16 +138,28 @@ module HammerCLI::Output
138
138
  [:screen]
139
139
  end
140
140
 
141
- def format(text)
141
+ def format(text, field_params={})
142
142
  text = text.to_s.indent_with(INDENT) if @indent
143
143
  "\n#{text}"
144
144
  end
145
145
  end
146
146
 
147
+ class BooleanFormatter < FieldFormatter
148
+
149
+ def tags
150
+ [:flat, :screen]
151
+ end
152
+
153
+ def format(value, field_params={})
154
+ !value || value == "" ? _("no") : _("yes")
155
+ end
156
+ end
157
+
147
158
  HammerCLI::Output::Output.register_formatter(DateFormatter.new, :Date)
148
159
  HammerCLI::Output::Output.register_formatter(ListFormatter.new, :List)
149
160
  HammerCLI::Output::Output.register_formatter(KeyValueFormatter.new, :KeyValue)
150
161
  HammerCLI::Output::Output.register_formatter(LongTextFormatter.new, :LongText)
162
+ HammerCLI::Output::Output.register_formatter(BooleanFormatter.new, :Boolean)
151
163
 
152
164
  end
153
165
  end
@@ -9,7 +9,7 @@ class String
9
9
  params[name.to_s] || params[name.to_sym]
10
10
  end
11
11
 
12
- self.gsub(/%[<{]([^>}]*)[>}]/, '%') % array_params
12
+ self.gsub(/%[<]([^>]*)[>]/, '%').gsub(/%[{]([^}]*)[}]/, '%s') % array_params
13
13
  else
14
14
  self % params
15
15
  end
@@ -1,5 +1,5 @@
1
1
  module HammerCLI
2
2
  def self.version
3
- @version ||= Gem::Version.new '0.1.0'
3
+ @version ||= Gem::Version.new '0.1.1'
4
4
  end
5
5
  end
@@ -6,20 +6,44 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: hammer-cli 0.0.18\n"
9
+ "Project-Id-Version: hammer-cli 0.1.0\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2014-03-05 20:36+0000\n"
11
+ "POT-Creation-Date: 2014-05-09 16:07-0400\n"
12
12
  "PO-Revision-Date: 2014-03-04 16:38+0000\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
+ "Language: \n"
15
16
  "MIME-Version: 1.0\n"
16
17
  "Content-Type: text/plain; charset=UTF-8\n"
17
18
  "Content-Transfer-Encoding: 8bit\n"
18
- "Language: \n"
19
19
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
20
20
 
21
- #: lib/hammer_cli/modules.rb:31
22
- msgid "Warning: An error occured while loading module %s"
21
+ #: lib/hammer_cli/validator.rb:41
22
+ msgid "Unknown option name '%s'"
23
+ msgstr ""
24
+
25
+ #: lib/hammer_cli/validator.rb:62
26
+ msgid "You can't set all options %s at one time"
27
+ msgstr ""
28
+
29
+ #: lib/hammer_cli/validator.rb:63
30
+ msgid "Options %s are required"
31
+ msgstr ""
32
+
33
+ #: lib/hammer_cli/validator.rb:79
34
+ msgid "You can't set any of options %s"
35
+ msgstr ""
36
+
37
+ #: lib/hammer_cli/validator.rb:80
38
+ msgid "At least one of options %s is required"
39
+ msgstr ""
40
+
41
+ #: lib/hammer_cli/output/formatters.rb:154
42
+ msgid "no"
43
+ msgstr ""
44
+
45
+ #: lib/hammer_cli/output/formatters.rb:154
46
+ msgid "yes"
23
47
  msgstr ""
24
48
 
25
49
  #: lib/hammer_cli/output/adapter/csv.rb:47
@@ -34,116 +58,118 @@ msgstr ""
34
58
  msgid "Name"
35
59
  msgstr ""
36
60
 
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"
61
+ #: lib/hammer_cli/exception_handler.rb:60
62
+ msgid "Error: %s"
43
63
  msgstr ""
44
64
 
45
- #: lib/hammer_cli/shell.rb:116
46
- msgid "Welcome to the hammer interactive shell"
65
+ #: lib/hammer_cli/exception_handler.rb:66
66
+ msgid "Error: %{message}\\n\\nSee: '%{path} --help'"
47
67
  msgstr ""
48
68
 
49
- #: lib/hammer_cli/shell.rb:117
50
- msgid "Type 'help' for usage information"
69
+ #: lib/hammer_cli/exception_handler.rb:83
70
+ msgid "Invalid username or password"
51
71
  msgstr ""
52
72
 
53
- #: lib/hammer_cli/shell.rb:133
54
- msgid "Interactive shell"
73
+ #: lib/hammer_cli/exception_handler.rb:90
74
+ msgid ""
75
+ "Could not load API description from the server\\n - is your server down?\\n"
76
+ "\\\\n \" - was \\\"#{rake_command}\\\" run on the server when "
77
+ "using apipie cache? (typical production settings))\\n\""
55
78
  msgstr ""
56
79
 
57
- #: lib/hammer_cli/options/normalizers.rb:26
58
- msgid "Comma-separated list of key=value."
80
+ #: lib/hammer_cli/logger.rb:28
81
+ msgid "No permissions to create log dir %s"
59
82
  msgstr ""
60
83
 
61
- #: lib/hammer_cli/options/normalizers.rb:35
62
- msgid "value must be defined as a comma-separated list of key=value"
84
+ #: lib/hammer_cli/logger.rb:43
85
+ msgid "File %s not writeable, won't log anything to the file!"
63
86
  msgstr ""
64
87
 
65
- #: lib/hammer_cli/options/normalizers.rb:46
66
- msgid "Comma separated list of values."
88
+ #: lib/hammer_cli/modules.rb:10
89
+ msgid ""
90
+ "Legacy configuration of modules detected. Check section about configuration "
91
+ "in user manual"
67
92
  msgstr ""
68
93
 
69
- #: lib/hammer_cli/options/normalizers.rb:58
70
- msgid "One of true/false, yes/no, 1/0."
94
+ #: lib/hammer_cli/modules.rb:42
95
+ msgid "Warning: An error occured while loading module %s"
71
96
  msgstr ""
72
97
 
73
- #: lib/hammer_cli/options/normalizers.rb:68
74
- msgid "value must be one of true/false, yes/no, 1/0"
98
+ #: lib/hammer_cli/shell.rb:10
99
+ msgid "Print help for commands"
75
100
  msgstr ""
76
101
 
77
- #: lib/hammer_cli/options/normalizers.rb:107
78
- msgid "Unable to parse JSON input"
102
+ #: lib/hammer_cli/shell.rb:22
103
+ msgid "Exit interactive shell"
79
104
  msgstr ""
80
105
 
81
- #: lib/hammer_cli/options/normalizers.rb:120
82
- msgid "One of %s"
106
+ #: lib/hammer_cli/shell.rb:120
107
+ msgid "Welcome to the hammer interactive shell"
83
108
  msgstr ""
84
109
 
85
- #: lib/hammer_cli/options/normalizers.rb:127
86
- msgid "value must be one of '%s'"
110
+ #: lib/hammer_cli/shell.rb:121
111
+ msgid "Type 'help' for usage information"
87
112
  msgstr ""
88
113
 
89
- #: lib/hammer_cli/options/normalizers.rb:146
90
- msgid "Date and time in YYYY-MM-DD HH:MM:SS or ISO 8601 format"
114
+ #: lib/hammer_cli/shell.rb:122
115
+ msgid ""
116
+ "Command completion is disabled on ruby < 1.9 due to compatibility problems."
91
117
  msgstr ""
92
118
 
93
- #: lib/hammer_cli/options/normalizers.rb:153
94
- msgid "'%s' is not a valid date"
119
+ #: lib/hammer_cli/shell.rb:138
120
+ msgid "Interactive shell"
95
121
  msgstr ""
96
122
 
97
- #: lib/hammer_cli/options/option_definition.rb:62
123
+ #: lib/hammer_cli/options/option_definition.rb:68
98
124
  msgid "Can be specified multiple times. "
99
125
  msgstr ""
100
126
 
101
- #: lib/hammer_cli/options/option_definition.rb:63
127
+ #: lib/hammer_cli/options/option_definition.rb:69
102
128
  msgid "Default: "
103
129
  msgstr ""
104
130
 
105
- #: lib/hammer_cli/options/option_definition.rb:63
131
+ #: lib/hammer_cli/options/option_definition.rb:69
106
132
  msgid ", or "
107
133
  msgstr ""
108
134
 
109
- #: lib/hammer_cli/apipie/command.rb:68
110
- msgid "resource id"
135
+ #: lib/hammer_cli/options/normalizers.rb:26
136
+ msgid "Comma-separated list of key=value."
111
137
  msgstr ""
112
138
 
113
- #: lib/hammer_cli/apipie/command.rb:69
114
- msgid "resource name"
139
+ #: lib/hammer_cli/options/normalizers.rb:35
140
+ msgid "value must be defined as a comma-separated list of key=value"
115
141
  msgstr ""
116
142
 
117
- #: lib/hammer_cli/apipie/command.rb:70
118
- msgid "resource label"
143
+ #: lib/hammer_cli/options/normalizers.rb:46
144
+ msgid "Comma separated list of values."
119
145
  msgstr ""
120
146
 
121
- #: lib/hammer_cli/apipie/command.rb:94
122
- msgid "%{resource} with %{option} '%{value}' not found"
147
+ #: lib/hammer_cli/options/normalizers.rb:58
148
+ msgid "One of true/false, yes/no, 1/0."
123
149
  msgstr ""
124
150
 
125
- #: lib/hammer_cli/apipie/command.rb:95
126
- msgid "%{resource} with %{option} '%{value}' found more than once"
151
+ #: lib/hammer_cli/options/normalizers.rb:68
152
+ msgid "value must be one of true/false, yes/no, 1/0"
127
153
  msgstr ""
128
154
 
129
- #: lib/hammer_cli/validator.rb:41
130
- msgid "Unknown option name '%s'"
155
+ #: lib/hammer_cli/options/normalizers.rb:107
156
+ msgid "Unable to parse JSON input"
131
157
  msgstr ""
132
158
 
133
- #: lib/hammer_cli/validator.rb:62
134
- msgid "You can't set all options %s at one time"
159
+ #: lib/hammer_cli/options/normalizers.rb:120
160
+ msgid "One of %s"
135
161
  msgstr ""
136
162
 
137
- #: lib/hammer_cli/validator.rb:63
138
- msgid "Options %s are required"
163
+ #: lib/hammer_cli/options/normalizers.rb:127
164
+ msgid "value must be one of '%s'"
139
165
  msgstr ""
140
166
 
141
- #: lib/hammer_cli/validator.rb:79
142
- msgid "You can't set any of options %s"
167
+ #: lib/hammer_cli/options/normalizers.rb:146
168
+ msgid "Date and time in YYYY-MM-DD HH:MM:SS or ISO 8601 format"
143
169
  msgstr ""
144
170
 
145
- #: lib/hammer_cli/validator.rb:80
146
- msgid "At least one of options %s is required"
171
+ #: lib/hammer_cli/options/normalizers.rb:153
172
+ msgid "'%s' is not a valid date"
147
173
  msgstr ""
148
174
 
149
175
  #: lib/hammer_cli/main.rb:7
@@ -151,53 +177,51 @@ msgid "be verbose"
151
177
  msgstr ""
152
178
 
153
179
  #: lib/hammer_cli/main.rb:8
180
+ msgid "show debugging output "
181
+ msgstr ""
182
+
183
+ #: lib/hammer_cli/main.rb:9
154
184
  msgid "path to custom config file"
155
185
  msgstr ""
156
186
 
157
- #: lib/hammer_cli/main.rb:10
187
+ #: lib/hammer_cli/main.rb:11
158
188
  msgid "username to access the remote system"
159
189
  msgstr ""
160
190
 
161
- #: lib/hammer_cli/main.rb:12
191
+ #: lib/hammer_cli/main.rb:13
162
192
  msgid "password to access the remote system"
163
193
  msgstr ""
164
194
 
165
- #: lib/hammer_cli/main.rb:15
195
+ #: lib/hammer_cli/main.rb:16
166
196
  msgid "show version"
167
197
  msgstr ""
168
198
 
169
- #: lib/hammer_cli/main.rb:24
199
+ #: lib/hammer_cli/main.rb:25
170
200
  msgid "Show ids of associated resources"
171
201
  msgstr ""
172
202
 
173
- #: lib/hammer_cli/main.rb:26
203
+ #: lib/hammer_cli/main.rb:27
174
204
  msgid "Explicitly turn interactive mode on/off"
175
205
  msgstr ""
176
206
 
177
- #: lib/hammer_cli/main.rb:30
207
+ #: lib/hammer_cli/main.rb:31
178
208
  msgid "Output as CSV (same as --output=csv)"
179
209
  msgstr ""
180
210
 
181
- #: lib/hammer_cli/main.rb:31
211
+ #: lib/hammer_cli/main.rb:32
182
212
  msgid "Set output format. One of [%s]"
183
213
  msgstr ""
184
214
 
185
- #: lib/hammer_cli/main.rb:34
215
+ #: lib/hammer_cli/main.rb:35
186
216
  msgid "Character to separate the values"
187
217
  msgstr ""
188
218
 
189
- #: lib/hammer_cli/main.rb:38
219
+ #: lib/hammer_cli/main.rb:39
190
220
  msgid "Get list of possible endings"
191
221
  msgstr ""
192
222
 
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"
223
+ #: lib/hammer_cli/settings.rb:28
224
+ msgid ""
225
+ "Warning: location hammer.modules.d is deprecated, move your module "
226
+ "configurations to cli.modules.d"
203
227
  msgstr ""