hem 1.0.1.beta6 → 1.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/Gemfile.lock +32 -45
- data/Hemfile +4 -2
- data/README.md +4 -0
- data/bin/hem +5 -6
- data/hem.gemspec +15 -15
- data/lib/hem.rb +47 -45
- data/lib/hem/asset_applicators/files.rb +1 -1
- data/lib/hem/cli.rb +36 -29
- data/lib/hem/error_handlers/debug.rb +1 -1
- data/lib/hem/error_handlers/friendly.rb +3 -3
- data/lib/hem/errors.rb +23 -12
- data/lib/hem/help_formatter.rb +12 -3
- data/lib/hem/helper/argument_parser.rb +30 -0
- data/lib/hem/helper/command.rb +2 -1
- data/lib/hem/helper/file_locator.rb +34 -7
- data/lib/hem/helper/shell.rb +0 -1
- data/lib/hem/helper/vm_command.rb +2 -2
- data/lib/hem/lib/host_check/vagrant.rb +2 -3
- data/lib/hem/lib/s3/sync.rb +2 -2
- data/lib/hem/lib/seed/project.rb +10 -13
- data/lib/hem/lib/seed/replacer.rb +9 -31
- data/lib/hem/lib/seed/template.rb +21 -0
- data/lib/hem/lib/vm/inspector.rb +1 -1
- data/lib/hem/patches/deepstruct.rb +4 -0
- data/lib/hem/patches/rake.rb +42 -11
- data/lib/hem/plugins.rb +129 -0
- data/lib/hem/setup.rb +6 -0
- data/lib/hem/tasks.rb +15 -0
- data/lib/hem/tasks/deps.rb +13 -14
- data/lib/hem/tasks/exec.rb +4 -2
- data/lib/hem/tasks/magento.rb +13 -275
- data/lib/hem/tasks/mysql.rb +16 -0
- data/lib/hem/tasks/ops.rb +2 -1
- data/lib/hem/tasks/plugin.rb +16 -0
- data/lib/hem/tasks/redis.rb +26 -0
- data/lib/hem/tasks/seed.rb +4 -2
- data/lib/hem/tasks/self.rb +7 -6
- data/lib/hem/tasks/tools.rb +1 -1
- data/lib/hem/tasks/vm.rb +8 -16
- data/lib/hem/util.rb +6 -16
- data/lib/hem/version.rb +12 -1
- data/lib/hobo/tasks/magento.rb +2 -1
- data/spec/hem/cli_spec.rb +1 -0
- data/spec/hem/helpers/argument_parser_spec.rb +57 -0
- data/spec/hem/lib/seed/project_spec.rb +1 -0
- data/spec/hem/lib/seed/replacer_spec.rb +12 -13
- data/spec/hem/lib/seed/seed_spec.rb +1 -0
- metadata +50 -42
- data/lib/hem/lib/github/api.rb +0 -48
- data/lib/hem/lib/github/client.rb +0 -52
- data/lib/hem/tasks/pr.rb +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f00e9f984cfc0962397a24b9bdf60183723a957
|
4
|
+
data.tar.gz: c7d3b06d842443da2b534f83fb751b7b2ae89858
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41f8b0a2edda8503154da2fde23b87ee507c0da76f6b5d737b874ae242bb55cccdcb4b66a18ef31138619ae643155a17dea1769c327ed3b4a07b29b115dace99
|
7
|
+
data.tar.gz: ad3771fc35f6a0e76495904e1205d6afda03bfb79bfa2acc1d3c1890a53eb0d547da22948683cdd9e39b056647eef3f1057d505b8fa53bada45ab2a2c6fd2539
|
data/Gemfile.lock
CHANGED
@@ -1,64 +1,51 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hem (1.
|
5
|
-
aws-sdk (~> 2.
|
6
|
-
deepstruct (~> 0.0.
|
7
|
-
highline (~> 1.
|
4
|
+
hem (1.1.0)
|
5
|
+
aws-sdk (~> 2.3.8)
|
6
|
+
deepstruct (~> 0.0.7)
|
7
|
+
highline (~> 1.7.3)
|
8
|
+
jmespath (~> 1.1.3)
|
9
|
+
json (~> 1.8.1)
|
8
10
|
net-ssh-simple (~> 1.6.3)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
semantic (~> 1.3.0)
|
14
|
-
slop (~> 3.4.7)
|
11
|
+
pry (~> 0.10.3)
|
12
|
+
rake (~> 11.1.2)
|
13
|
+
ruby-progressbar (~> 1.8.1)
|
14
|
+
slop (~> 3.6.0)
|
15
15
|
teerb (~> 0.0.1)
|
16
16
|
|
17
17
|
GEM
|
18
18
|
remote: https://rubygems.org/
|
19
19
|
specs:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
aws-sdk-core (2.0.48)
|
24
|
-
builder (~> 3.0)
|
20
|
+
aws-sdk (2.3.8)
|
21
|
+
aws-sdk-resources (= 2.3.8)
|
22
|
+
aws-sdk-core (2.3.8)
|
25
23
|
jmespath (~> 1.0)
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
builder (3.2.2)
|
31
|
-
coderay (1.1.0)
|
24
|
+
aws-sdk-resources (2.3.8)
|
25
|
+
aws-sdk-core (= 2.3.8)
|
26
|
+
blockenspiel (0.5.0)
|
27
|
+
coderay (1.1.1)
|
32
28
|
deepstruct (0.0.7)
|
33
|
-
|
34
|
-
|
35
|
-
hashie (3.4.3)
|
36
|
-
highline (1.6.21)
|
29
|
+
hashie (3.4.4)
|
30
|
+
highline (1.7.8)
|
37
31
|
jmespath (1.1.3)
|
32
|
+
json (1.8.3)
|
38
33
|
method_source (0.8.2)
|
39
|
-
multi_json (1.11.2)
|
40
|
-
multipart-post (2.0.0)
|
41
34
|
net-scp (1.2.1)
|
42
35
|
net-ssh (>= 2.6.5)
|
43
|
-
net-ssh (3.
|
44
|
-
net-ssh-simple (1.6.
|
45
|
-
blockenspiel (= 0.
|
46
|
-
hashie (= 3.4.
|
36
|
+
net-ssh (3.1.1)
|
37
|
+
net-ssh-simple (1.6.15)
|
38
|
+
blockenspiel (= 0.5.0)
|
39
|
+
hashie (= 3.4.4)
|
47
40
|
net-scp (= 1.2.1)
|
48
|
-
net-ssh (= 3.
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
coderay (~> 1.0)
|
53
|
-
method_source (~> 0.8)
|
41
|
+
net-ssh (= 3.1.1)
|
42
|
+
pry (0.10.3)
|
43
|
+
coderay (~> 1.1.0)
|
44
|
+
method_source (~> 0.8.1)
|
54
45
|
slop (~> 3.4)
|
55
|
-
rake (
|
56
|
-
ruby-progressbar (1.
|
57
|
-
|
58
|
-
addressable (~> 2.3.5)
|
59
|
-
faraday (~> 0.8, < 0.10)
|
60
|
-
semantic (1.3.1)
|
61
|
-
slop (3.4.7)
|
46
|
+
rake (11.1.2)
|
47
|
+
ruby-progressbar (1.8.1)
|
48
|
+
slop (3.6.0)
|
62
49
|
teerb (0.0.1)
|
63
50
|
|
64
51
|
PLATFORMS
|
@@ -68,4 +55,4 @@ DEPENDENCIES
|
|
68
55
|
hem!
|
69
56
|
|
70
57
|
BUNDLED WITH
|
71
|
-
1.
|
58
|
+
1.12.4
|
data/Hemfile
CHANGED
@@ -24,7 +24,8 @@ namespace :test do
|
|
24
24
|
long_desc "long description"
|
25
25
|
option "-o", "--option", "Option description"
|
26
26
|
hidden true
|
27
|
-
|
27
|
+
argument 'arg'
|
28
|
+
task "metadata" do
|
28
29
|
Hem.ui.info "metadata"
|
29
30
|
end
|
30
31
|
|
@@ -33,7 +34,8 @@ namespace :test do
|
|
33
34
|
Hem.ui.info task.opts[:testing]
|
34
35
|
end
|
35
36
|
|
36
|
-
|
37
|
+
argument 'test'
|
38
|
+
task 'argument-test' do |task, args|
|
37
39
|
Hem.ui.info args[:test]
|
38
40
|
end
|
39
41
|
|
data/README.md
CHANGED
@@ -10,6 +10,10 @@ Many more features are planned including assisting with host machine configurati
|
|
10
10
|
|
11
11
|
# Installing & using
|
12
12
|
|
13
|
+
* [OSX](https://github.com/inviqa/hem/wiki/Installing-on-OSX)
|
14
|
+
* [Linux](https://github.com/inviqa/hem/wiki/Installing-on-Linux)
|
15
|
+
* [Windows](https://github.com/inviqa/hem/wiki/Installing-on-Windows)
|
16
|
+
|
13
17
|
Full instructions for installing and using hem are available in the [User guide](https://github.com/inviqa/hem/wiki/User-guide). For information on the task DSL, see the [DSL guide](https://github.com/inviqa/hem/wiki/Hemfile-DSL).
|
14
18
|
|
15
19
|
Please ensure that you run the following command after installing and that it does not raise any issues:
|
data/bin/hem
CHANGED
@@ -1,10 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
# Hack to allow testing with Aruba (for now)
|
4
|
-
$:.push File.expand_path(File.join("..", "..", "lib"), __FILE__)
|
5
|
-
|
6
3
|
def init_hem
|
7
|
-
|
4
|
+
require_relative '../lib/hem/setup'
|
8
5
|
|
9
6
|
# Default main classes
|
10
7
|
error_handler = Hem::ErrorHandlers::Friendly.new
|
@@ -12,6 +9,8 @@ def init_hem
|
|
12
9
|
Hem.logger = Logger.new(STDOUT)
|
13
10
|
Hem.logger.level = Logger::WARN
|
14
11
|
|
12
|
+
Hem.plugins = Hem::Plugins.new(Hem.project_path || Hem.config_path, Hem.project_dsl_file)
|
13
|
+
|
15
14
|
# Low level / early arg parsing
|
16
15
|
# Anything that can alter ui / logger / cli should be here
|
17
16
|
# Early termination args should also go here
|
@@ -49,13 +48,13 @@ def init_hem
|
|
49
48
|
Hem.cli = Hem::Cli.new(slop: slop)
|
50
49
|
Hem.cli.start
|
51
50
|
rescue Exception => error
|
52
|
-
exit error_handler.handle(error)
|
51
|
+
exit error_handler.handle(Hem.cli, error)
|
53
52
|
end
|
54
53
|
end
|
55
54
|
|
56
55
|
Gem.configuration.verbose = false
|
57
56
|
|
58
|
-
|
57
|
+
require_relative '../lib/hem/patches/rubygems'
|
59
58
|
|
60
59
|
# Suppress Net/SSH/Simple warning on windows
|
61
60
|
$SUPPRESS_32BIT_WARNING=1
|
data/hem.gemspec
CHANGED
@@ -6,9 +6,9 @@ require 'hem/version'
|
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
8
|
spec.name = "hem"
|
9
|
-
spec.version = Hem::VERSION
|
10
|
-
spec.authors = ["Mike Simons"]
|
11
|
-
spec.email = ["
|
9
|
+
spec.version = Hem::VERSION
|
10
|
+
spec.authors = ["Mike Simons", "Andy Thompson"]
|
11
|
+
spec.email = ["athompson@inviqa.com"]
|
12
12
|
spec.description = %q{Inviqan toolbelt}
|
13
13
|
spec.summary = %q{Inviqan toolbelt}
|
14
14
|
spec.homepage = ""
|
@@ -20,28 +20,28 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_dependency "
|
24
|
-
spec.add_dependency "
|
25
|
-
spec.add_dependency "
|
26
|
-
spec.add_dependency "
|
27
|
-
spec.add_dependency "
|
28
|
-
spec.add_dependency "aws-sdk", "~> 2.0.24"
|
29
|
-
spec.add_dependency "ruby-progressbar", "~> 1.4.1"
|
30
|
-
spec.add_dependency "teerb", "~> 0.0.1"
|
23
|
+
spec.add_dependency "aws-sdk", "~> 2.3.8"
|
24
|
+
spec.add_dependency "deepstruct", "~> 0.0.7"
|
25
|
+
spec.add_dependency "highline", "~> 1.7.3"
|
26
|
+
spec.add_dependency "jmespath", "~> 1.1.3"
|
27
|
+
spec.add_dependency "json", "~> 1.8.1"
|
31
28
|
spec.add_dependency "net-ssh-simple", "~> 1.6.3"
|
32
|
-
spec.add_dependency "pry", "~> 0.
|
33
|
-
spec.add_dependency "
|
29
|
+
spec.add_dependency "pry", "~> 0.10.3"
|
30
|
+
spec.add_dependency "rake", "~> 11.1.2"
|
31
|
+
spec.add_dependency "ruby-progressbar", "~> 1.8.1"
|
32
|
+
spec.add_dependency "slop", "~> 3.6.0"
|
33
|
+
spec.add_dependency "teerb", "~> 0.0.1"
|
34
34
|
|
35
35
|
# This prevents Bundler.setup from complaining that rubygems did not install dev deps
|
36
36
|
# If you want to run dev deps you need to ensure HEM_ENV=dev is set for bundle install & bundle exec
|
37
37
|
if ENV['HEM_ENV'] == 'dev'
|
38
38
|
spec.add_development_dependency "aruba", "~> 0.5.4"
|
39
|
-
spec.add_development_dependency "rspec", "~> 2.14.1"
|
40
39
|
spec.add_development_dependency "fakefs", "~> 0.5.0"
|
41
|
-
spec.add_development_dependency "rr", "~> 1.1.2"
|
42
40
|
spec.add_development_dependency "guard", "~> 2.2.5"
|
43
41
|
spec.add_development_dependency "guard-rspec", "~> 4.2.4"
|
44
42
|
spec.add_development_dependency "guard-cucumber", "~> 1.4.1"
|
43
|
+
spec.add_development_dependency "rr", "~> 1.1.2"
|
44
|
+
spec.add_development_dependency "rspec", "~> 2.14.1"
|
45
45
|
spec.add_development_dependency "simplecov", "~> 0.7.1"
|
46
46
|
end
|
47
47
|
end
|
data/lib/hem.rb
CHANGED
@@ -3,72 +3,74 @@ require 'slop'
|
|
3
3
|
require 'rake'
|
4
4
|
require 'deepstruct'
|
5
5
|
require 'logger'
|
6
|
+
require 'json'
|
6
7
|
|
7
8
|
require 'shellwords'
|
8
9
|
require 'fileutils'
|
9
10
|
|
10
11
|
# DSL enhancements
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
require_relative 'hem/metadata'
|
13
|
+
require_relative 'hem/patches/rake'
|
14
|
+
require_relative 'hem/patches/slop'
|
15
|
+
require_relative 'hem/patches/deepstruct'
|
15
16
|
|
16
17
|
# Basics
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
18
|
+
require_relative 'hem/version'
|
19
|
+
require_relative 'hem/null'
|
20
|
+
require_relative 'hem/paths'
|
21
|
+
require_relative 'hem/errors'
|
22
|
+
require_relative 'hem/logging'
|
23
|
+
require_relative 'hem/plugins'
|
24
|
+
require_relative 'hem/ui'
|
25
|
+
require_relative 'hem/util'
|
26
|
+
require_relative 'hem/help_formatter'
|
27
|
+
require_relative 'hem/error_handlers/exit_code_map'
|
28
|
+
require_relative 'hem/error_handlers/debug'
|
29
|
+
require_relative 'hem/error_handlers/friendly'
|
30
|
+
require_relative 'hem/config/file'
|
31
|
+
require_relative 'hem/config'
|
30
32
|
|
31
33
|
# Asset sync
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
require_relative 'hem/lib/s3/sync'
|
35
|
+
require_relative 'hem/lib/s3/local/file'
|
36
|
+
require_relative 'hem/lib/s3/local/iohandler'
|
37
|
+
require_relative 'hem/lib/s3/remote/file'
|
38
|
+
require_relative 'hem/lib/s3/remote/iohandler'
|
37
39
|
|
38
40
|
# Task helpers
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
require_relative 'hem/helper/argument_parser'
|
42
|
+
require_relative 'hem/helper/command'
|
43
|
+
require_relative 'hem/helper/shell'
|
44
|
+
require_relative 'hem/helper/file_locator'
|
45
|
+
require_relative 'hem/helper/github'
|
46
|
+
require_relative 'hem/helper/http_download'
|
47
|
+
require_relative 'hem/helper/vm_command'
|
45
48
|
|
46
|
-
|
49
|
+
require_relative 'hem/lib/local/command'
|
47
50
|
|
48
|
-
|
49
|
-
|
51
|
+
require_relative 'hem/lib/vm/inspector'
|
52
|
+
require_relative 'hem/lib/vm/command'
|
50
53
|
|
51
54
|
# Asset applicators
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
+
require_relative 'hem/asset_applicator'
|
56
|
+
require_relative 'hem/asset_applicators/sqldump'
|
57
|
+
require_relative 'hem/asset_applicators/files'
|
55
58
|
|
56
59
|
# Libs
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
require 'hem/lib/github/client'
|
60
|
+
require_relative 'hem/lib/seed/project'
|
61
|
+
require_relative 'hem/lib/seed/replacer'
|
62
|
+
require_relative 'hem/lib/seed/seed'
|
63
|
+
require_relative 'hem/lib/seed/template'
|
64
|
+
require_relative 'hem/lib/self_signed_cert_generator'
|
63
65
|
|
64
66
|
# Host checks
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
67
|
+
require_relative 'hem/lib/host_check/git'
|
68
|
+
require_relative 'hem/lib/host_check/vagrant'
|
69
|
+
require_relative 'hem/lib/host_check/deps'
|
70
|
+
require_relative 'hem/lib/host_check'
|
69
71
|
|
70
72
|
# App
|
71
|
-
|
73
|
+
require_relative 'hem/cli'
|
72
74
|
|
73
75
|
# Hobo BC
|
74
76
|
Hobo = Hem
|
data/lib/hem/cli.rb
CHANGED
@@ -27,6 +27,7 @@ module Hem
|
|
27
27
|
@help_formatter = opts[:help] || Hem::HelpFormatter.new(@slop)
|
28
28
|
@help_opts = {}
|
29
29
|
@host_check = opts[:host_check] || Hem::Lib::HostCheck
|
30
|
+
@pre_task_namespaces = ['shell-init', 'plugin']
|
30
31
|
end
|
31
32
|
|
32
33
|
# entry point for application
|
@@ -36,9 +37,7 @@ module Hem
|
|
36
37
|
load_builtin_tasks
|
37
38
|
load_hemfiles
|
38
39
|
load_project_config
|
39
|
-
Hem.chefdk_compat
|
40
40
|
|
41
|
-
tasks = structure_tasks Hem::Metadata.metadata.keys
|
42
41
|
define_global_opts @slop
|
43
42
|
|
44
43
|
begin
|
@@ -46,21 +45,22 @@ module Hem
|
|
46
45
|
@slop.parse! args
|
47
46
|
opts = @slop.to_hash
|
48
47
|
|
49
|
-
perform_host_checks unless opts[:'skip-host-checks']
|
50
|
-
|
51
48
|
@help_opts[:all] = opts[:all]
|
52
49
|
|
53
|
-
@slop.add_callback :empty do
|
54
|
-
show_help
|
55
|
-
end
|
56
|
-
|
57
50
|
# Necessary to make command level help work
|
58
|
-
args.push "--help" if @slop.help?
|
51
|
+
args.push "--help" if @slop.help? || args.empty?
|
59
52
|
|
60
|
-
|
53
|
+
include_pre_tasks
|
54
|
+
remaining = @slop.parse! args.dup
|
55
|
+
remaining.push "--help" if @slop.help?
|
61
56
|
|
62
|
-
remaining
|
63
|
-
|
57
|
+
if remaining == args
|
58
|
+
include_post_tasks opts
|
59
|
+
|
60
|
+
remaining = @slop.parse! remaining
|
61
|
+
end
|
62
|
+
|
63
|
+
raise Hem::InvalidCommandOrOpt.new remaining.join(" ") if remaining.size > 0
|
64
64
|
|
65
65
|
show_help if @slop.help?
|
66
66
|
rescue Halt
|
@@ -80,20 +80,24 @@ module Hem
|
|
80
80
|
|
81
81
|
private
|
82
82
|
|
83
|
+
def include_pre_tasks
|
84
|
+
tasks = structure_tasks Hem::Metadata.metadata.keys
|
85
|
+
pre_tasks = tasks.select { |k,_| @pre_task_namespaces.include? k }
|
86
|
+
@help_formatter.command_map = define_tasks(pre_tasks, @slop)
|
87
|
+
end
|
88
|
+
|
89
|
+
def include_post_tasks opts
|
90
|
+
load_plugins
|
91
|
+
perform_host_checks unless opts[:'skip-host-checks']
|
92
|
+
|
93
|
+
tasks = structure_tasks Hem::Metadata.metadata.keys
|
94
|
+
post_tasks = tasks.reject { |k,_| @pre_task_namespaces.include? k }
|
95
|
+
|
96
|
+
@help_formatter.command_map.merge! define_tasks(post_tasks, @slop)
|
97
|
+
end
|
98
|
+
|
83
99
|
def load_builtin_tasks
|
84
|
-
|
85
|
-
require 'hem/tasks/config'
|
86
|
-
require 'hem/tasks/deps'
|
87
|
-
require 'hem/tasks/exec'
|
88
|
-
require 'hem/tasks/ops'
|
89
|
-
require 'hem/tasks/pr'
|
90
|
-
require 'hem/tasks/seed'
|
91
|
-
require 'hem/tasks/self'
|
92
|
-
require 'hem/tasks/shell_init'
|
93
|
-
require 'hem/tasks/system'
|
94
|
-
require 'hem/tasks/system/completions'
|
95
|
-
require 'hem/tasks/tools'
|
96
|
-
require 'hem/tasks/vm'
|
100
|
+
require_relative 'tasks'
|
97
101
|
end
|
98
102
|
|
99
103
|
def load_user_config
|
@@ -120,6 +124,10 @@ module Hem
|
|
120
124
|
end
|
121
125
|
end
|
122
126
|
|
127
|
+
def load_plugins
|
128
|
+
Hem.plugins.setup unless Hem.plugins.setup?
|
129
|
+
end
|
130
|
+
|
123
131
|
def perform_host_checks
|
124
132
|
checks = [
|
125
133
|
'vagrant.*',
|
@@ -207,7 +215,7 @@ module Hem
|
|
207
215
|
|
208
216
|
description metadata[:desc]
|
209
217
|
long_description metadata[:long_desc]
|
210
|
-
arg_list
|
218
|
+
arg_list metadata[:arg_list]
|
211
219
|
hidden metadata[:hidden]
|
212
220
|
project_only metadata[:project_only]
|
213
221
|
|
@@ -223,9 +231,8 @@ module Hem
|
|
223
231
|
Dir.chdir Hem.project_path if Hem.in_project?
|
224
232
|
raise ::Hem::ProjectOnlyError.new if opts.project_only && !Hem.in_project?
|
225
233
|
task.opts = opts.to_hash.merge({:_unparsed => hem.slop.unparsed})
|
226
|
-
|
227
|
-
task.invoke *args
|
228
|
-
args.pop(task.arg_names.size)
|
234
|
+
|
235
|
+
task.invoke *Helper::convert_args(name, args, metadata[:arg_list])
|
229
236
|
task.opts = nil
|
230
237
|
end
|
231
238
|
end
|