hammer_cli 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/hammer +16 -9
- data/doc/creating_commands.md +20 -0
- data/doc/release_notes.md +7 -0
- data/lib/hammer_cli/apipie/option_builder.rb +4 -0
- data/lib/hammer_cli/options/normalizers.rb +25 -2
- data/lib/hammer_cli/options/option_definition.rb +12 -0
- data/lib/hammer_cli/version.rb +1 -1
- data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/de/hammer-cli.edit.po +8 -7
- data/locale/de/hammer-cli.po +19 -4
- data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en/hammer-cli.edit.po +87 -72
- data/locale/en/hammer-cli.po +15 -3
- data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en_GB/hammer-cli.po +15 -3
- data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/es/hammer-cli.po +19 -4
- data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/fr/hammer-cli.po +19 -4
- data/locale/hammer-cli.pot +140 -124
- data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/it/hammer-cli.po +19 -4
- data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ja/hammer-cli.po +19 -4
- data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ko/hammer-cli.po +19 -4
- data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/pt_BR/hammer-cli.po +19 -4
- data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ru/hammer-cli.edit.po +12 -11
- data/locale/ru/hammer-cli.po +19 -4
- data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_CN/hammer-cli.po +19 -4
- data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_TW/hammer-cli.po +19 -4
- data/test/unit/apipie/option_builder_test.rb +10 -1
- data/test/unit/fixtures/apipie/documented.json +18 -0
- data/test/unit/options/normalizers_test.rb +13 -2
- data/test/unit/options/option_definition_test.rb +30 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7da6a9e45a6760f38b354282567dcddad5b4d004
|
4
|
+
data.tar.gz: 7bda2b5e6eb146a1b747b83101a9b536645f23d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f0ae742b4500cd823de4d92be2b6b95149dd4e281adfcb232ef68111817e7b9dab27267799a562b32910b038389f64dc2922a62c609fd8ef8ce619cd82c5543
|
7
|
+
data.tar.gz: 1c9619bd4fc7f3bc8b6b83aba7b8550f567226569afc2407e55493211afa27087b6f3a93b2e2aa287a5402482bcf39bdfd6637e8c323574ed186c971da0596bc
|
data/bin/hammer
CHANGED
@@ -9,19 +9,26 @@ HighLine.color_scheme = HighLine::SampleColorScheme.new
|
|
9
9
|
require 'hammer_cli/i18n'
|
10
10
|
|
11
11
|
require 'hammer_cli/options/normalizers'
|
12
|
-
#
|
12
|
+
# Create fake command instance to use some global args before we start.
|
13
|
+
# Option descriptions are never displayed and thus do not require translation.
|
13
14
|
class PreParser < Clamp::Command
|
14
|
-
option ["-v", "--verbose"], :flag,
|
15
|
-
option ["-d", "--debug"], :flag,
|
16
|
-
option ["-c", "--config"], "CFG_FILE",
|
17
|
-
option ["-u", "--username"], "USERNAME",
|
18
|
-
option ["-p", "--password"], "PASSWORD",
|
19
|
-
option ["-s", "--server"], "SERVER",
|
20
|
-
option ["-r", "--reload-cache"], :flag,
|
21
|
-
option ["--interactive"], "INTERACTIVE",
|
15
|
+
option ["-v", "--verbose"], :flag, "be verbose"
|
16
|
+
option ["-d", "--debug"], :flag, "show debugging output"
|
17
|
+
option ["-c", "--config"], "CFG_FILE", "path to custom config file"
|
18
|
+
option ["-u", "--username"], "USERNAME", "username to access the remote system"
|
19
|
+
option ["-p", "--password"], "PASSWORD", "password to access the remote system"
|
20
|
+
option ["-s", "--server"], "SERVER", "remote system address"
|
21
|
+
option ["-r", "--reload-cache"], :flag, "force reload of Apipie cache"
|
22
|
+
option ["--interactive"], "INTERACTIVE", "Explicitly turn interactive mode on/off" do |value|
|
22
23
|
bool_normalizer = HammerCLI::Options::Normalizers::Bool.new
|
23
24
|
bool_normalizer.format(value)
|
24
25
|
end
|
26
|
+
option ["--version"], :flag, "show version"
|
27
|
+
option ["--show-ids"], :flag, "Show ids of associated resources"
|
28
|
+
option ["--csv"], :flag, "Output as CSV (same as --output=csv)"
|
29
|
+
option ["--output"], "ADAPTER", "Set output format"
|
30
|
+
option ["--csv-separator"], "SEPARATOR", "Character to separate the values"
|
31
|
+
option ["--autocomplete"], "LINE", "Get list of possible endings"
|
25
32
|
end
|
26
33
|
|
27
34
|
preparser = PreParser.new File.basename($0), {}
|
data/doc/creating_commands.md
CHANGED
@@ -129,6 +129,26 @@ $ hammer hello --name 'Foreman'
|
|
129
129
|
Hello Foreman!
|
130
130
|
```
|
131
131
|
|
132
|
+
#### Deprecated options
|
133
|
+
To mark an option as deprecated use the `:deprecated` option as follows:
|
134
|
+
```ruby
|
135
|
+
option '--name', "NAME", "Name of the person you want to greet",
|
136
|
+
:deprecated => _('Use --alias instead')
|
137
|
+
```
|
138
|
+
It will ensure user is warned when deprecated option is used:
|
139
|
+
```
|
140
|
+
$ hammer hello --name 'Foreman'
|
141
|
+
Warning: Option --name is deprecated. Use --alias instead
|
142
|
+
Hello Foreman!
|
143
|
+
```
|
144
|
+
|
145
|
+
In cases when you want to deprecate just one of more possible switches use the extended syntax:
|
146
|
+
```ruby
|
147
|
+
option ['--alias','--name'], "NAME", "Name of the person you want to greet",
|
148
|
+
:deprecated => { '--name' => _('Use --alias instead') }
|
149
|
+
```
|
150
|
+
|
151
|
+
|
132
152
|
### Option builders
|
133
153
|
Hammer commands offer option builders that can be used for automatic option generation.
|
134
154
|
See [documentation page](option_builders.md#option-builders) dedicated to this topic for more details.
|
data/doc/release_notes.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
Release notes
|
2
2
|
=============
|
3
3
|
|
4
|
+
### 0.3.0 (2015-07-29)
|
5
|
+
* Add normalizer converting id parameter values to numbers ([#11137](http://projects.theforeman.org/issues/11137))
|
6
|
+
* Set Enum normalizer on enumerated values ([#11033](http://projects.theforeman.org/issues/11033))
|
7
|
+
* Add missing options to preparser ([#10902](http://projects.theforeman.org/issues/10902))
|
8
|
+
* Added support for deprecated options ([#10564](http://projects.theforeman.org/issues/10564))
|
9
|
+
|
10
|
+
|
4
11
|
### 0.2.0 (2015-04-23)
|
5
12
|
* Rubygem locale pined to version >= 2.0.6 ([#10154](http://projects.theforeman.org/issues/10154))
|
6
13
|
* Restricted logging version as in 2.0.0 ruby 1.8.7 support was dropped
|
@@ -68,6 +68,10 @@ module HammerCLI::Apipie
|
|
68
68
|
opts[:format] = HammerCLI::Options::Normalizers::List.new
|
69
69
|
elsif param.expected_type == 'boolean' || param.validator =~ /Boolean/i
|
70
70
|
opts[:format] = HammerCLI::Options::Normalizers::Bool.new
|
71
|
+
elsif param.validator =~ /Must be one of: (.*)\./
|
72
|
+
opts[:format] = HammerCLI::Options::Normalizers::Enum.new($1.split(/,\ ?/))
|
73
|
+
elsif param.expected_type == 'number' || param.validator =~ /Number/i
|
74
|
+
opts[:format] = HammerCLI::Options::Normalizers::Number.new
|
71
75
|
end
|
72
76
|
opts[:attribute_name] = HammerCLI.option_accessor_name(param.name)
|
73
77
|
opts[:referenced_resource] = resource_name(param)
|
@@ -79,6 +79,23 @@ module HammerCLI
|
|
79
79
|
end
|
80
80
|
|
81
81
|
|
82
|
+
class Number < AbstractNormalizer
|
83
|
+
|
84
|
+
def format(val)
|
85
|
+
if numeric?(val)
|
86
|
+
val.to_i
|
87
|
+
else
|
88
|
+
raise ArgumentError, _("numeric value is required")
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def numeric?(val)
|
93
|
+
Integer(val) != nil rescue false
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
|
98
|
+
|
82
99
|
class Bool < AbstractNormalizer
|
83
100
|
|
84
101
|
def description
|
@@ -138,20 +155,26 @@ module HammerCLI
|
|
138
155
|
|
139
156
|
|
140
157
|
class Enum < AbstractNormalizer
|
158
|
+
attr_reader :allowed_values
|
141
159
|
|
142
160
|
def initialize(allowed_values)
|
143
161
|
@allowed_values = allowed_values
|
144
162
|
end
|
145
163
|
|
146
164
|
def description
|
147
|
-
_("
|
165
|
+
_("Possible value(s): %s") % quoted_values
|
148
166
|
end
|
149
167
|
|
150
168
|
def format(value)
|
151
169
|
if @allowed_values.include? value
|
152
170
|
value
|
153
171
|
else
|
154
|
-
|
172
|
+
if allowed_values.count == 1
|
173
|
+
msg = _("value must be %s") % quoted_values
|
174
|
+
else
|
175
|
+
msg = _("value must be one of %s") % quoted_values
|
176
|
+
end
|
177
|
+
raise ArgumentError, msg
|
155
178
|
end
|
156
179
|
end
|
157
180
|
|
@@ -20,10 +20,12 @@ module HammerCLI
|
|
20
20
|
|
21
21
|
attr_accessor :value_formatter
|
22
22
|
attr_accessor :context_target
|
23
|
+
attr_accessor :deprecated_switches
|
23
24
|
|
24
25
|
def initialize(switches, type, description, options = {})
|
25
26
|
self.value_formatter = options.delete(:format)
|
26
27
|
self.context_target = options.delete(:context_target)
|
28
|
+
self.deprecated_switches = options.delete(:deprecated)
|
27
29
|
super
|
28
30
|
end
|
29
31
|
|
@@ -50,6 +52,16 @@ module HammerCLI
|
|
50
52
|
rhs.empty? ? " " : rhs
|
51
53
|
end
|
52
54
|
|
55
|
+
def handles?(switch)
|
56
|
+
message = _("Warning: Option #{switch} is deprecated. %s")
|
57
|
+
if deprecated_switches.class <= String && switches.include?(switch)
|
58
|
+
warn(message % deprecated_switches)
|
59
|
+
elsif deprecated_switches.class <= Hash && deprecated_switches.keys.include?(switch)
|
60
|
+
warn(message % deprecated_switches[switch])
|
61
|
+
end
|
62
|
+
super(switch)
|
63
|
+
end
|
64
|
+
|
53
65
|
def format_description
|
54
66
|
if value_formatter.nil?
|
55
67
|
""
|
data/lib/hammer_cli/version.rb
CHANGED
Binary file
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# This file is distributed under the same license as the hammer-cli package.
|
4
4
|
#
|
5
5
|
# Translators:
|
6
|
+
# Christina Gurski <Gurski_christina@yahoo.de>, 2015
|
6
7
|
# Dominic Cleal <dcleal@redhat.com>, 2014
|
7
8
|
# Ettore Atalan <atalanttore@googlemail.com>, 2014
|
8
9
|
# simon11 <simon.stieger.98@live.de>, 2014
|
@@ -13,8 +14,8 @@ msgstr ""
|
|
13
14
|
"Project-Id-Version: Foreman\n"
|
14
15
|
"Report-Msgid-Bugs-To: \n"
|
15
16
|
"POT-Creation-Date: 2014-12-10 13:50+0100\n"
|
16
|
-
"PO-Revision-Date: 2015-
|
17
|
-
"Last-Translator:
|
17
|
+
"PO-Revision-Date: 2015-06-27 20:10+0000\n"
|
18
|
+
"Last-Translator: Christina Gurski <Gurski_christina@yahoo.de>\n"
|
18
19
|
"Language-Team: German (http://www.transifex.com/projects/p/foreman/language/de/)\n"
|
19
20
|
"MIME-Version: 1.0\n"
|
20
21
|
"Content-Type: text/plain; charset=UTF-8\n"
|
@@ -136,7 +137,7 @@ msgstr "Debugausgabe anzeigen"
|
|
136
137
|
|
137
138
|
#: lib/hammer_cli/main.rb:9
|
138
139
|
msgid "force reload of Apipie cache"
|
139
|
-
msgstr ""
|
140
|
+
msgstr "Neuladen des Apipie-Caches erzwingen"
|
140
141
|
|
141
142
|
#: lib/hammer_cli/main.rb:11
|
142
143
|
msgid "path to custom config file"
|
@@ -200,7 +201,7 @@ msgstr "Warnung: Beim Laden von Modul %s ist ein Fehler aufgetreten"
|
|
200
201
|
|
201
202
|
#: lib/hammer_cli/modules.rb:87
|
202
203
|
msgid "Error: Some of the required modules are disabled in configuration: %s "
|
203
|
-
msgstr ""
|
204
|
+
msgstr "Fehler: Einige der erforderlichen Module sind in der Konfiguration deaktiviert: %s"
|
204
205
|
|
205
206
|
#: lib/hammer_cli/exception_handler.rb:62
|
206
207
|
msgid "Error: %s"
|
@@ -230,11 +231,11 @@ msgstr "ist der Server nicht verfügbar?"
|
|
230
231
|
msgid ""
|
231
232
|
"was '%s' run on the server when using apipie cache? (typical production "
|
232
233
|
"settings)"
|
233
|
-
msgstr ""
|
234
|
+
msgstr "Wurde '%s' auf dem Server ausgeführt, während Apipe-Cache in Verwendung war? (typische Produktionseinstellungen)"
|
234
235
|
|
235
236
|
#: lib/hammer_cli/exception_handler.rb:101
|
236
237
|
msgid "Missing arguments for %s"
|
237
|
-
msgstr ""
|
238
|
+
msgstr "Argumente für %s nicht vorhanden"
|
238
239
|
|
239
240
|
#: lib/hammer_cli/validator.rb:41
|
240
241
|
msgid "Unknown option name '%s'"
|
@@ -300,4 +301,4 @@ msgstr "Interaktive Shell"
|
|
300
301
|
msgid ""
|
301
302
|
"can't replace subcommand %<name>s (%<existing_class>s) with %<name>s "
|
302
303
|
"(%<new_class>s)"
|
303
|
-
msgstr ""
|
304
|
+
msgstr "Unterbefehl %<name>s (%<existing_class>s) kann nicht durch %<name>s (%<new_class>s) ersetzt werden"
|
data/locale/de/hammer-cli.po
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
# Ulrich Habel <rhaen@pkgbox.de>, 2014
|
11
11
|
msgid ""
|
12
12
|
msgstr ""
|
13
|
-
"Project-Id-Version: hammer-cli 0.
|
13
|
+
"Project-Id-Version: hammer-cli 0.3.0\n"
|
14
14
|
"Report-Msgid-Bugs-To: \n"
|
15
15
|
"PO-Revision-Date: 2014-09-16 16:54+0000\n"
|
16
16
|
"Last-Translator: Dominic Cleal <dcleal@redhat.com>\n"
|
@@ -105,6 +105,10 @@ msgstr "Adresse des entfernten Systems"
|
|
105
105
|
msgid "show version"
|
106
106
|
msgstr "Version anzeigen"
|
107
107
|
|
108
|
+
#, fuzzy
|
109
|
+
msgid "unknown version"
|
110
|
+
msgstr "Version anzeigen"
|
111
|
+
|
108
112
|
msgid "Show ids of associated resources"
|
109
113
|
msgstr "IDs zugehöriger Ressourcen anzeigen"
|
110
114
|
|
@@ -145,6 +149,9 @@ msgstr "Wert muss als kommagetrennte Liste mit Schlüssel-Wert-Paaren definiert
|
|
145
149
|
msgid "Comma separated list of values."
|
146
150
|
msgstr "Kommagetrennte Liste von Werten."
|
147
151
|
|
152
|
+
msgid "numeric value is required"
|
153
|
+
msgstr ""
|
154
|
+
|
148
155
|
msgid "One of true/false, yes/no, 1/0."
|
149
156
|
msgstr "Eines von true/false, yes/no, 1/0."
|
150
157
|
|
@@ -154,10 +161,15 @@ msgstr "Gültige Werte sind true/false, yes/no, 1/0"
|
|
154
161
|
msgid "Unable to parse JSON input"
|
155
162
|
msgstr "JSON Eingabe nicht lesbar"
|
156
163
|
|
157
|
-
msgid "
|
158
|
-
msgstr "
|
164
|
+
msgid "Possible value(s): %s"
|
165
|
+
msgstr ""
|
159
166
|
|
160
|
-
|
167
|
+
#, fuzzy
|
168
|
+
msgid "value must be %s"
|
169
|
+
msgstr "Gültige Werte sind \"%s\""
|
170
|
+
|
171
|
+
#, fuzzy
|
172
|
+
msgid "value must be one of %s"
|
161
173
|
msgstr "Gültige Werte sind \"%s\""
|
162
174
|
|
163
175
|
msgid "Date and time in YYYY-MM-DD HH:MM:SS or ISO 8601 format"
|
@@ -172,6 +184,9 @@ msgstr "Eine Kombination (kommagetrennte Liste) aus \"%s\""
|
|
172
184
|
msgid "value must be a combination of '%s'"
|
173
185
|
msgstr "Wert muss eine Kombination aus \"%s\" sein"
|
174
186
|
|
187
|
+
msgid "\"Warning: Option #{switch} is deprecated. %s\""
|
188
|
+
msgstr ""
|
189
|
+
|
175
190
|
msgid "Can be specified multiple times. "
|
176
191
|
msgstr "Kann mehrfach angegeben werden."
|
177
192
|
|
Binary file
|