stax 0.1.3 → 0.1.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 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.