stax 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 977f337dd555b2e8941cb23a8493af6ada396a3eeba4af49264a26ca7a022d4c
4
- data.tar.gz: cb54eca3f8cad6131164e33b6704c69d48b4ca3b089e07ec27e978beca853ad0
3
+ metadata.gz: ff348fae4586ba8565b0716cafbd57a2804fa9ead68069195ec351815833201b
4
+ data.tar.gz: dcae498f9406661f84112b0034c15a844a1945ef746e19188c05fce565c8e9ed
5
5
  SHA512:
6
- metadata.gz: f44ff1358eef0fb11b44bdcee1f040757506c5792178b1e895b8e7ebf1f38d6ac43edd39c88effe79e9c257ccf44c6a0db84627e331047ddfdeeb9675b7c2bfb
7
- data.tar.gz: b9d0c14a3b6a99354ecce5f32a8bdf31482abcaffe730d1a76919daa34d0396edb09fc2bf281360613b8abcf2f6f6575795dfdab4d7004dbe600930d93d17296
6
+ metadata.gz: e6469ff904a334f9fd228f14c754c59f6b273d9bd0916ca367cabdad103f72d29993f45f6101a12215249197d32fc7dd6cfa1bd78cdbe45c17508b0baa24f223
7
+ data.tar.gz: 75cae424254fc98fb6696051b2d08e3f1c6a045f54c64e257fb78a6cf65ad6f86f220ab5482568803e396568ae7a5d64b677577b69674ff99f9c455095ec0b38
@@ -1,4 +1,3 @@
1
- require 'stax/aws/sts'
2
1
  require 'stax/aws/ecr'
3
2
 
4
3
  module Stax
@@ -7,7 +6,7 @@ module Stax
7
6
  no_commands do
8
7
  ## default to ECR registry for this account
9
8
  def docker_registry
10
- @_docker_registry ||= "#{Aws::Sts.id.account}.dkr.ecr.#{ENV['AWS_REGION']}.amazonaws.com"
9
+ @_docker_registry ||= "#{aws_account_id}.dkr.ecr.#{aws_region}.amazonaws.com"
11
10
  end
12
11
 
13
12
  ## name the docker repo after the git repo
@@ -21,7 +20,7 @@ module Stax
21
20
  end
22
21
 
23
22
  ## build a docker image locally
24
- def docker_local_build
23
+ def docker_build
25
24
  debug("Docker build #{docker_image}")
26
25
  system "docker build -t #{docker_image} #{Git.toplevel}"
27
26
  end
@@ -31,28 +30,6 @@ module Stax
31
30
  debug("Docker push #{docker_image}")
32
31
  system "docker push #{docker_image}"
33
32
  end
34
-
35
- ## override this for your argus setup
36
- def docker_argus_queue
37
- @_docker_argus_queue ||= Aws::Sqs.queue_url('argus.fifo')
38
- end
39
-
40
- def docker_argus_build
41
- debug("Sending to argus #{Git.branch}:#{Git.sha}")
42
- org, repo = Git.repo.split('/')
43
- Aws::Sqs.send(
44
- queue_url: docker_argus_queue,
45
- message_group_id: repo,
46
- message_body: {
47
- org: org,
48
- repo: repo,
49
- branch: Git.branch,
50
- sha: Git.sha,
51
- }.to_json
52
- ).tap do |r|
53
- puts r&.message_id
54
- end
55
- end
56
33
  end
57
34
 
58
35
  desc 'registry', 'show registry name'
@@ -73,8 +50,7 @@ module Stax
73
50
  ## override this method with the desired builder
74
51
  desc 'build', 'build docker image'
75
52
  def build
76
- docker_local_build
77
- # docker_argus_build
53
+ docker_build
78
54
  end
79
55
 
80
56
  desc 'login', 'login to registry'
@@ -103,4 +79,4 @@ module Stax
103
79
  end
104
80
 
105
81
  end
106
- end
82
+ end
@@ -1,6 +1,7 @@
1
1
  module Stax
2
2
  @@_root_path = nil
3
3
  @@_stack_list = []
4
+ @@_command_list = []
4
5
 
5
6
  ## the stax root is defined as location of Staxfile
6
7
  def self.root_path
@@ -12,6 +13,11 @@ module Stax
12
13
  @@_stack_list
13
14
  end
14
15
 
16
+ ## list of commands defined in Staxfile
17
+ def self.command_list
18
+ @@_command_list
19
+ end
20
+
15
21
  ## search up the dir tree for nearest Staxfile
16
22
  def self.find_staxfile
17
23
  Pathname.pwd.ascend do |path|
@@ -24,6 +30,7 @@ module Stax
24
30
  if root_path
25
31
  load(root_path.join('Staxfile'))
26
32
  require_stacks
33
+ require_commands
27
34
  end
28
35
  end
29
36
 
@@ -35,6 +42,14 @@ module Stax
35
42
  end
36
43
  end
37
44
 
45
+ ## auto-require any command lib files
46
+ def self.require_commands
47
+ command_list.each do |command|
48
+ f = root_path.join('lib', "#{command}.rb")
49
+ require(f) if File.exist?(f)
50
+ end
51
+ end
52
+
38
53
  ## add a stack by name, creates class as needed
39
54
  def self.add_stack(name, opt = {})
40
55
  @@_stack_list << name
@@ -64,9 +79,14 @@ module Stax
64
79
  end
65
80
 
66
81
  ## add a non-stack command at top level
67
- def self.add_command(name, klass)
82
+ def self.add_command(name, klass = nil)
83
+ @@_command_list << name
84
+
85
+ ## class defaults to eg Stax::Name::Cmd
86
+ klass ||= self.const_get(name.to_s.split(/[_-]/).map(&:capitalize).join + '::Cmd')
87
+
68
88
  Cli.desc(name, "#{name} commands")
69
89
  Cli.subcommand(name, klass)
70
90
  end
71
91
 
72
- end
92
+ end
@@ -1,3 +1,3 @@
1
1
  module Stax
2
- VERSION = '0.1.3'
2
+ VERSION = '0.1.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stax
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Richard Lister
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-15 00:00:00.000000000 Z
11
+ date: 2020-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -624,7 +624,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
624
624
  - !ruby/object:Gem::Version
625
625
  version: '0'
626
626
  requirements: []
627
- rubygems_version: 3.1.2
627
+ rubygems_version: 3.0.3
628
628
  signing_key:
629
629
  specification_version: 4
630
630
  summary: Control Cloudformation stack and other stuff.