hem 1.0.1.beta6 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|