terragov 0.2.3 → 0.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +9 -0
- data/Rakefile +3 -3
- data/bin/console +3 -3
- data/lib/terragov.rb +6 -5
- data/lib/terragov/buildpaths.rb +31 -33
- data/lib/terragov/cleaner.rb +20 -16
- data/lib/terragov/cli.rb +50 -49
- data/lib/terragov/git.rb +3 -8
- data/lib/terragov/terraform.rb +13 -16
- data/lib/terragov/version.rb +1 -1
- data/terragov.gemspec +19 -17
- metadata +32 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 707493668e500d3df9dd3676a2a34a6076d2963b
|
4
|
+
data.tar.gz: 9d1ab18b21d0b14338d60bcda07926c57f1cf3f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdcdc9cd6184dc833f5ea4cd3920f6d8ef50532b331aa719b12a9e3695f7be90ac3a027e1eb9b7a4227522fb900a9f53d3e895a8d6314c95133ce7bf2cd891e7
|
7
|
+
data.tar.gz: db62d131106c5756c7f148d8ea7a36269d61ef6e6e716bdcead3e29f25e6fe9b28c7d168526adc0a81b88e99a5b5dc9bebdd4a5a1dcbae09788439050c88a042
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -20,6 +20,15 @@ This tool is only meant to be used specifically against the project structure [d
|
|
20
20
|
|
21
21
|
Run `--help` for details.
|
22
22
|
|
23
|
+
You can run the following commands:
|
24
|
+
|
25
|
+
Command | Description
|
26
|
+
--- | ---
|
27
|
+
`plan` | Plan Terraform resources
|
28
|
+
`apply` | Apply Terraform changes
|
29
|
+
`delete` | Delete Terraform resources
|
30
|
+
`clean` | Delete any files that have been left by Terraform
|
31
|
+
|
23
32
|
There are several **required** arguments to pass when running `apply`, `plan` or `destroy`:
|
24
33
|
|
25
34
|
Argument | Description
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'terragov'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "terragov"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/lib/terragov.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
1
|
+
require 'terragov/buildpaths'
|
2
|
+
require 'terragov/cleaner'
|
3
|
+
require 'terragov/cli'
|
4
|
+
require 'terragov/git'
|
5
|
+
require 'terragov/terraform'
|
6
|
+
require 'terragov/version'
|
data/lib/terragov/buildpaths.rb
CHANGED
@@ -2,9 +2,7 @@ require_relative 'cli'
|
|
2
2
|
|
3
3
|
module Terragov
|
4
4
|
class BuildPaths
|
5
|
-
|
6
|
-
def base(options={})
|
7
|
-
|
5
|
+
def base(options = {})
|
8
6
|
environment = options['environment']
|
9
7
|
data_dir = options['data_dir']
|
10
8
|
repo_dir = options['repo_dir']
|
@@ -13,51 +11,51 @@ module Terragov
|
|
13
11
|
extra = options['extra']
|
14
12
|
|
15
13
|
# Construct variables
|
16
|
-
terraform_dir = File.join(repo_dir,
|
14
|
+
terraform_dir = File.join(repo_dir, 'terraform')
|
17
15
|
project_dir = File.join(terraform_dir, "projects/#{project}")
|
18
16
|
backend_file = File.join(project_dir, "#{environment}.#{stack}.backend")
|
19
17
|
common_data_dir = File.join(data_dir, "common/#{environment}")
|
20
|
-
common_data = File.join(common_data_dir,
|
18
|
+
common_data = File.join(common_data_dir, 'common.tfvars')
|
21
19
|
stack_common_data = File.join(common_data_dir, "#{stack}.tfvars")
|
22
20
|
project_data_dir = File.join(data_dir, "#{project}/#{environment}")
|
23
|
-
common_project_data = File.join(project_data_dir,
|
24
|
-
secret_common_project_data = File.join(project_data_dir,
|
21
|
+
common_project_data = File.join(project_data_dir, 'common.tfvars')
|
22
|
+
secret_common_project_data = File.join(project_data_dir, 'common.secret.tfvars')
|
25
23
|
stack_project_data = File.join(project_data_dir, "#{stack}.tfvars")
|
26
24
|
secret_project_data = File.join(project_data_dir, "#{stack}.secret.tfvars")
|
27
25
|
|
28
26
|
# Return hash to enable testing
|
29
27
|
data_paths = {
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
28
|
+
terraform_dir: terraform_dir,
|
29
|
+
project_dir: project_dir,
|
30
|
+
backend_file: backend_file,
|
31
|
+
common_data_dir: common_data_dir,
|
32
|
+
common_data: common_data,
|
33
|
+
stack_common_data: stack_common_data,
|
34
|
+
project_data_dir: project_data_dir,
|
35
|
+
common_project_data: common_project_data,
|
36
|
+
secret_common_project_data: secret_common_project_data,
|
37
|
+
stack_project_data: stack_project_data,
|
38
|
+
secret_project_data: secret_project_data
|
41
39
|
}
|
42
40
|
end
|
43
41
|
|
44
42
|
def data_validation(path, required = false)
|
45
43
|
if required
|
46
44
|
if File.exist?(path)
|
47
|
-
|
45
|
+
true
|
48
46
|
else
|
49
47
|
abort("Invalid directory or file: #{path}")
|
50
48
|
end
|
51
49
|
else
|
52
50
|
if File.exist?(path)
|
53
|
-
|
51
|
+
true
|
54
52
|
else
|
55
|
-
|
53
|
+
false
|
56
54
|
end
|
57
55
|
end
|
58
56
|
end
|
59
57
|
|
60
|
-
def data_paths(options={})
|
58
|
+
def data_paths(options = {})
|
61
59
|
# The path order is important for passing the var files in the correct
|
62
60
|
# order to Terraform as that creates the hierarchy for overrides
|
63
61
|
base = self.base(options)
|
@@ -67,7 +65,7 @@ module Terragov
|
|
67
65
|
base[:common_project_data],
|
68
66
|
base[:secret_common_project_data],
|
69
67
|
base[:stack_project_data],
|
70
|
-
base[:secret_project_data]
|
68
|
+
base[:secret_project_data]
|
71
69
|
]
|
72
70
|
end
|
73
71
|
|
@@ -77,20 +75,20 @@ module Terragov
|
|
77
75
|
$path_array << data_validation(path)
|
78
76
|
end
|
79
77
|
|
80
|
-
|
81
|
-
|
78
|
+
if $path_array.include? true
|
79
|
+
return true
|
80
|
+
else
|
81
|
+
puts 'Files checked: '
|
82
82
|
paths.each do |path|
|
83
83
|
puts path
|
84
84
|
end
|
85
85
|
return false
|
86
|
-
else
|
87
|
-
return true
|
88
86
|
end
|
89
87
|
end
|
90
88
|
|
91
|
-
def build_command(options={})
|
92
|
-
paths =
|
93
|
-
abort(
|
89
|
+
def build_command(options = {})
|
90
|
+
paths = base(options)
|
91
|
+
abort('Cannot find main repository') unless data_validation(paths[:terraform_dir], true)
|
94
92
|
var_paths = data_paths(options)
|
95
93
|
abort("Can't find any var files") unless check_var_files(var_paths)
|
96
94
|
|
@@ -107,9 +105,9 @@ module Terragov
|
|
107
105
|
end
|
108
106
|
# If defining additional Terraform commands, they need to be passed in as one string,
|
109
107
|
# with any hyphens escaped twice so it does not conflict with commander CLI options
|
110
|
-
extra = options[
|
111
|
-
$full_vars << extra.
|
112
|
-
|
108
|
+
extra = options['extra'].to_s
|
109
|
+
$full_vars << extra.delete('\\')
|
110
|
+
$full_vars.join(' ')
|
113
111
|
end
|
114
112
|
end
|
115
113
|
end
|
data/lib/terragov/cleaner.rb
CHANGED
@@ -3,28 +3,32 @@ require 'highline'
|
|
3
3
|
|
4
4
|
module Terragov
|
5
5
|
class Cleaner
|
6
|
-
def delete(path,
|
7
|
-
|
6
|
+
def delete(path, patterns = [], force = false)
|
7
|
+
patterns.each do |pattern|
|
8
|
+
puts path
|
8
9
|
|
9
|
-
|
10
|
-
puts "No files found matching #{pattern} in #{path}"
|
11
|
-
exit
|
12
|
-
end
|
10
|
+
files = Find.find(path).grep(pattern)
|
13
11
|
|
14
|
-
|
12
|
+
if files.empty?
|
13
|
+
puts "No files found matching #{pattern} in #{path}"
|
14
|
+
next
|
15
|
+
end
|
15
16
|
|
16
|
-
|
17
|
-
puts File.expand_path(file)
|
18
|
-
end
|
17
|
+
puts "Files matching #{pattern} found:"
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
files.each do |file|
|
20
|
+
puts File.expand_path(file)
|
21
|
+
end
|
22
|
+
|
23
|
+
unless force
|
24
|
+
next unless HighLine.agree('Do you wish to delete?')
|
25
|
+
end
|
23
26
|
|
24
|
-
|
25
|
-
|
27
|
+
files.each do |file|
|
28
|
+
File.delete(File.expand_path(file))
|
29
|
+
end
|
30
|
+
puts 'Done'
|
26
31
|
end
|
27
|
-
puts "Done"
|
28
32
|
end
|
29
33
|
end
|
30
34
|
end
|
data/lib/terragov/cli.rb
CHANGED
@@ -16,27 +16,27 @@ module Terragov
|
|
16
16
|
program :version, Terragov::VERSION
|
17
17
|
program :description, 'Wrapper for GOV.UK Terraform deployments.'
|
18
18
|
|
19
|
-
global_option('-c',
|
19
|
+
global_option('-c', '--config-file FILE', 'Specify a config file. Has less precedence than environment variables, which in turn have less precedence than CLI options') do |config_file|
|
20
20
|
$config_file = config_file
|
21
21
|
end
|
22
22
|
|
23
|
-
global_option('-d',
|
23
|
+
global_option('-d', '--data-dir DIRECTORY', String, 'Location of the data directory') do |data_dir|
|
24
24
|
$data_dir = data_dir
|
25
25
|
end
|
26
26
|
|
27
|
-
global_option(
|
27
|
+
global_option('-e', '--environment STRING', String, 'Select environment') do |environment|
|
28
28
|
$environment = environment
|
29
29
|
end
|
30
30
|
|
31
|
-
global_option(
|
31
|
+
global_option('-p', '--project STRING', String, 'Name of the project') do |project|
|
32
32
|
$project = project
|
33
33
|
end
|
34
34
|
|
35
|
-
global_option(
|
35
|
+
global_option('-r', '--repo-dir DIRECTORY', String, 'Location of the main terraform repository') do |repo_dir|
|
36
36
|
$repo_dir = repo_dir
|
37
37
|
end
|
38
38
|
|
39
|
-
global_option(
|
39
|
+
global_option('-s', '--stack STRING', String, 'Name of the stack') do |stack|
|
40
40
|
$stack = stack
|
41
41
|
end
|
42
42
|
|
@@ -58,23 +58,23 @@ module Terragov
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def data_dir
|
61
|
-
|
61
|
+
$data_dir ? $data_dir : false
|
62
62
|
end
|
63
63
|
|
64
64
|
def environment
|
65
|
-
|
65
|
+
$environment ? $environment : false
|
66
66
|
end
|
67
67
|
|
68
68
|
def project
|
69
|
-
|
69
|
+
$project ? $project : false
|
70
70
|
end
|
71
71
|
|
72
72
|
def repo_dir
|
73
|
-
|
73
|
+
$repo_dir ? $repo_dir : false
|
74
74
|
end
|
75
75
|
|
76
76
|
def stack
|
77
|
-
|
77
|
+
$stack ? $stack : false
|
78
78
|
end
|
79
79
|
|
80
80
|
def extra
|
@@ -82,26 +82,26 @@ module Terragov
|
|
82
82
|
end
|
83
83
|
|
84
84
|
def verbose
|
85
|
-
|
85
|
+
true ? $verbose : false
|
86
86
|
end
|
87
87
|
|
88
88
|
def dryrun
|
89
|
-
|
89
|
+
true ? $dryrun : false
|
90
90
|
end
|
91
91
|
|
92
92
|
def skip_git_check
|
93
|
-
|
93
|
+
true ? $skip_git_check : false
|
94
94
|
end
|
95
95
|
|
96
96
|
def load_config_file
|
97
97
|
if $config_file || ENV['TERRAGOV_CONFIG_FILE']
|
98
98
|
file = $config_file || ENV['TERRAGOV_CONFIG_FILE']
|
99
99
|
$values = YAML.load_file(File.expand_path(file))
|
100
|
-
|
100
|
+
$values
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
-
def config(option, file=false, required=true)
|
104
|
+
def config(option, file = false, required = true)
|
105
105
|
env_var = "TERRAGOV_#{option.upcase}"
|
106
106
|
error_message = "Must set #{option}. Use --help for details."
|
107
107
|
if public_send(option)
|
@@ -117,18 +117,18 @@ module Terragov
|
|
117
117
|
return ENV[env_var]
|
118
118
|
end
|
119
119
|
elsif !load_config_file.nil?
|
120
|
-
|
121
|
-
if file
|
122
|
-
return File.expand_path(load_config_file[option])
|
123
|
-
else
|
124
|
-
return load_config_file[option]
|
125
|
-
end
|
126
|
-
else
|
120
|
+
if load_config_file[option].nil?
|
127
121
|
if required
|
128
122
|
abort(error_message)
|
129
123
|
else
|
130
124
|
return false
|
131
125
|
end
|
126
|
+
else
|
127
|
+
if file
|
128
|
+
return File.expand_path(load_config_file[option])
|
129
|
+
else
|
130
|
+
return load_config_file[option]
|
131
|
+
end
|
132
132
|
end
|
133
133
|
else
|
134
134
|
if required
|
@@ -141,19 +141,19 @@ module Terragov
|
|
141
141
|
|
142
142
|
def cmd_options
|
143
143
|
cmd_options_hash = {
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
144
|
+
'environment' => config('environment'),
|
145
|
+
'data_dir' => config('data_dir', true),
|
146
|
+
'project' => config('project'),
|
147
|
+
'stack' => config('stack'),
|
148
|
+
'repo_dir' => config('repo_dir', true),
|
149
|
+
'extra' => extra
|
150
150
|
}
|
151
|
-
|
151
|
+
cmd_options_hash
|
152
152
|
end
|
153
153
|
|
154
|
-
def git_compare_repo_and_data(skip=false)
|
154
|
+
def git_compare_repo_and_data(skip = false)
|
155
155
|
git_helper = Terragov::Git.new
|
156
|
-
# FIXME this is confusing as we want to check the repository git status from
|
156
|
+
# FIXME: this is confusing as we want to check the repository git status from
|
157
157
|
# the root, but the "data" directory is one level down in the repository
|
158
158
|
repo_dir_root = cmd_options['repo_dir']
|
159
159
|
data_dir_root = File.expand_path(File.join(cmd_options['data_dir'], '../'))
|
@@ -162,8 +162,8 @@ module Terragov
|
|
162
162
|
data_dir_branch = git_helper.branch_name(data_dir_root)
|
163
163
|
|
164
164
|
branches = {
|
165
|
-
|
166
|
-
|
165
|
+
'repo_dir' => repo_dir_branch,
|
166
|
+
'data_dir' => data_dir_branch
|
167
167
|
}
|
168
168
|
|
169
169
|
unless skip
|
@@ -175,7 +175,7 @@ module Terragov
|
|
175
175
|
|
176
176
|
unless git_helper.compare_branch(repo_dir_root, data_dir_root)
|
177
177
|
puts "Warning: repo_dir(#{repo_dir_branch}) and data_dir(#{data_dir_branch}) on different branches"
|
178
|
-
exit unless HighLine.agree(
|
178
|
+
exit unless HighLine.agree('Do you wish to continue?')
|
179
179
|
end
|
180
180
|
end
|
181
181
|
end
|
@@ -190,16 +190,12 @@ module Terragov
|
|
190
190
|
|
191
191
|
do_dryrun = config('dryrun', false, false)
|
192
192
|
|
193
|
-
skip_check =
|
193
|
+
skip_check = config('skip_git_check', false, false)
|
194
194
|
git_compare_repo_and_data(skip_check)
|
195
195
|
|
196
|
-
if be_verbose
|
197
|
-
puts cmd_options.to_yaml
|
198
|
-
end
|
196
|
+
puts cmd_options.to_yaml if be_verbose
|
199
197
|
|
200
|
-
if opt
|
201
|
-
cmd = "#{cmd} #{opt}"
|
202
|
-
end
|
198
|
+
cmd = "#{cmd} #{opt}" if opt
|
203
199
|
Terragov::Terraform.new.execute(cmd, varfiles, backend, project_dir, do_dryrun, be_verbose)
|
204
200
|
end
|
205
201
|
|
@@ -207,8 +203,7 @@ module Terragov
|
|
207
203
|
command :plan do |c|
|
208
204
|
c.syntax = 'terragov plan'
|
209
205
|
c.description = 'Runs a plan of your code'
|
210
|
-
c.action do |
|
211
|
-
|
206
|
+
c.action do |_args, _options|
|
212
207
|
run_terraform_cmd(c.name)
|
213
208
|
end
|
214
209
|
end
|
@@ -216,8 +211,7 @@ module Terragov
|
|
216
211
|
command :apply do |c|
|
217
212
|
c.syntax = 'terragov apply'
|
218
213
|
c.description = 'Apply your code'
|
219
|
-
c.action do |
|
220
|
-
|
214
|
+
c.action do |_args, _options|
|
221
215
|
run_terraform_cmd(c.name)
|
222
216
|
end
|
223
217
|
end
|
@@ -226,7 +220,7 @@ module Terragov
|
|
226
220
|
c.syntax = 'terragov destroy'
|
227
221
|
c.description = 'Destroy your selected project'
|
228
222
|
c.option '--force', 'Force destroy'
|
229
|
-
c.action do |
|
223
|
+
c.action do |_args, options|
|
230
224
|
if options.force
|
231
225
|
run_terraform_cmd("#{c.name} -force")
|
232
226
|
else
|
@@ -239,12 +233,19 @@ module Terragov
|
|
239
233
|
c.syntax = 'terragov clean'
|
240
234
|
c.description = 'Clean your directory of any files terraform may have left lying around'
|
241
235
|
c.option '--force', 'Force removal of files'
|
242
|
-
c.action do |
|
236
|
+
c.action do |_args, options|
|
243
237
|
if config('verbose', false, false)
|
244
238
|
puts "Selecting directory #{repo_dir}"
|
245
239
|
end
|
246
240
|
|
247
|
-
|
241
|
+
files_to_delete = [
|
242
|
+
/\.terraform/,
|
243
|
+
/terraform\.tfstate\.backup/,
|
244
|
+
]
|
245
|
+
|
246
|
+
path = config('repo_dir', true)
|
247
|
+
|
248
|
+
Terragov::Cleaner.new.delete(path, files_to_delete, options.force)
|
248
249
|
end
|
249
250
|
end
|
250
251
|
|
data/lib/terragov/git.rb
CHANGED
@@ -8,18 +8,13 @@ module Terragov
|
|
8
8
|
exit unless HighLine.agree("#{directory} not a git repository, do you wish to continue?")
|
9
9
|
end
|
10
10
|
|
11
|
-
branch =
|
11
|
+
branch = ::Git.open(directory).current_branch
|
12
12
|
|
13
|
-
|
13
|
+
branch
|
14
14
|
end
|
15
15
|
|
16
16
|
def compare_branch(dir_a, dir_b)
|
17
|
-
|
18
|
-
return true
|
19
|
-
else
|
20
|
-
return false
|
21
|
-
end
|
17
|
+
branch_name(dir_a) == branch_name(dir_b)
|
22
18
|
end
|
23
|
-
|
24
19
|
end
|
25
20
|
end
|
data/lib/terragov/terraform.rb
CHANGED
@@ -1,19 +1,18 @@
|
|
1
1
|
module Terragov
|
2
2
|
class Terraform
|
3
|
-
|
4
3
|
def package_check(package)
|
5
4
|
unless system("which #{package} >/dev/null")
|
6
5
|
abort("Must install #{package}") unless HighLine.agree("Can't find #{package}. Install using Homebrew?")
|
7
|
-
if system(
|
6
|
+
if system('which brew >/dev/null')
|
8
7
|
system("brew install #{package}")
|
9
8
|
else
|
10
|
-
abort(
|
9
|
+
abort('Error: cannot find brew')
|
11
10
|
end
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
15
|
-
def execute(command, vars, backend, directory, dryrun=false, verbose=false)
|
16
|
-
packages = [
|
14
|
+
def execute(command, vars, backend, directory, dryrun = false, verbose = false)
|
15
|
+
packages = %w[terraform sops]
|
17
16
|
|
18
17
|
packages.each do |pkg|
|
19
18
|
package_check(pkg)
|
@@ -29,23 +28,21 @@ module Terragov
|
|
29
28
|
|
30
29
|
full_command = "bash -c 'terraform #{command} #{vars}'"
|
31
30
|
|
32
|
-
|
33
|
-
puts full_command
|
34
|
-
else
|
35
|
-
puts "#{command} command: #{full_command}" if verbose
|
36
|
-
abort("There was an issue running the command") unless system(full_command)
|
37
|
-
end
|
31
|
+
run(full_command, dryrun, verbose)
|
38
32
|
end
|
39
33
|
|
40
|
-
def init(backend_file, dryrun=false, verbose=false)
|
34
|
+
def init(backend_file, dryrun = false, verbose = false)
|
41
35
|
init_cmd = "terraform init -backend-config #{backend_file}"
|
36
|
+
run(init_cmd, dryrun, verbose)
|
37
|
+
end
|
38
|
+
|
39
|
+
def run(command, dryrun = false, verbose = false)
|
42
40
|
if dryrun
|
43
|
-
puts
|
41
|
+
puts command
|
44
42
|
else
|
45
|
-
puts
|
46
|
-
abort("
|
43
|
+
puts command if verbose
|
44
|
+
abort("There was an issue running the command: #{command}") unless system(full_command)
|
47
45
|
end
|
48
46
|
end
|
49
|
-
|
50
47
|
end
|
51
48
|
end
|
data/lib/terragov/version.rb
CHANGED
data/terragov.gemspec
CHANGED
@@ -1,34 +1,36 @@
|
|
1
|
-
|
1
|
+
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'terragov/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'terragov'
|
8
8
|
spec.version = Terragov::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Laura Martin']
|
10
|
+
spec.email = ['surminus@gmail.com']
|
11
11
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
12
|
+
spec.summary = 'Wrapper for GOV.UK Terraform deployments.'
|
13
|
+
spec.description = 'GOV.UK deploy infrastructure using Terraform. This is a wrapper to help deployments.'
|
14
|
+
spec.homepage = 'https://github.com/surminus/terragov'
|
15
|
+
spec.license = 'MIT'
|
16
16
|
|
17
17
|
spec.required_ruby_version = '>= 2.2.2'
|
18
18
|
|
19
|
-
spec.files
|
19
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
20
20
|
f.match(%r{^(test|spec|features)/})
|
21
21
|
end
|
22
22
|
spec.executables = ['terragov']
|
23
|
-
spec.require_paths = [
|
23
|
+
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_runtime_dependency
|
26
|
-
spec.add_runtime_dependency
|
25
|
+
spec.add_runtime_dependency 'commander'
|
26
|
+
spec.add_runtime_dependency 'git'
|
27
27
|
|
28
|
-
spec.add_development_dependency
|
29
|
-
spec.add_development_dependency
|
30
|
-
spec.add_development_dependency
|
31
|
-
spec.add_development_dependency
|
32
|
-
spec.add_development_dependency
|
28
|
+
spec.add_development_dependency 'bundler'
|
29
|
+
spec.add_development_dependency 'rake', '~> 10.5'
|
30
|
+
spec.add_development_dependency 'rspec', '~> 3.6'
|
31
|
+
spec.add_development_dependency 'rspec-mocks'
|
32
|
+
spec.add_development_dependency 'rubocop'
|
33
|
+
spec.add_development_dependency 'pry'
|
34
|
+
spec.add_development_dependency 'simplecov', '>= 0.8.2'
|
33
35
|
spec.add_development_dependency 'coveralls', '>= 0.7.0'
|
34
36
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terragov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Laura Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec-mocks
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: pry
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,6 +162,7 @@ files:
|
|
134
162
|
- ".gitignore"
|
135
163
|
- ".rspec"
|
136
164
|
- ".travis.yml"
|
165
|
+
- CHANGELOG.md
|
137
166
|
- CODE_OF_CONDUCT.md
|
138
167
|
- Gemfile
|
139
168
|
- LICENSE.txt
|
@@ -172,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
172
201
|
version: '0'
|
173
202
|
requirements: []
|
174
203
|
rubyforge_project:
|
175
|
-
rubygems_version: 2.
|
204
|
+
rubygems_version: 2.6.11
|
176
205
|
signing_key:
|
177
206
|
specification_version: 4
|
178
207
|
summary: Wrapper for GOV.UK Terraform deployments.
|