firespring_dev_commands 2.1.1.pre.alpha.5 → 2.1.2.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/firespring_dev_commands/aws/account.rb +1 -0
- data/lib/firespring_dev_commands/aws/credentials.rb +1 -0
- data/lib/firespring_dev_commands/common.rb +2 -2
- data/lib/firespring_dev_commands/slack/global.rb +6 -1
- data/lib/firespring_dev_commands/slack.rb +5 -0
- data/lib/firespring_dev_commands/templates/config.rb +13 -9
- data/lib/firespring_dev_commands/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3db1999f6439e25498a7a5dc84b96d7191cea3be8210382d8302502d07cae3d
|
4
|
+
data.tar.gz: 4be9c55b74b4bfcee808d4ce888a39ba9bb8db3598ae0421a67bf86628bf5983
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4221e8f43391c3e7db66a6e46bf4b60baa7d4524cc4e0706529f18599c29ec69490be451339a45926ff0d26200d517d2af25451c5535c92ff91515c135e9c57
|
7
|
+
data.tar.gz: 2874a653490e414a00a0e6ff94c12bb1ce7e29d65218b1b7e90b04cebaa801bf7dde1fe53bdb2d0770bb15dfc6dc815cdaa4fe069a62d861a2dec7e7032fca46
|
@@ -23,6 +23,7 @@ module Dev
|
|
23
23
|
# The name of the file containing the Aws settings
|
24
24
|
CONFIG_FILE = "#{Dev::Aws::CONFIG_DIR}/config".freeze
|
25
25
|
|
26
|
+
# Returns the config ini file associated with this object
|
26
27
|
def self.config_ini
|
27
28
|
IniFile.new(filename: CONFIG_FILE, default: 'default')
|
28
29
|
end
|
@@ -11,6 +11,7 @@ module Dev
|
|
11
11
|
# The local file where temporary credentials are stored
|
12
12
|
CONFIG_FILE = "#{Dev::Aws::CONFIG_DIR}/credentials".freeze
|
13
13
|
|
14
|
+
# Returns the config ini file associated with this object
|
14
15
|
def self.config_ini
|
15
16
|
IniFile.new(filename: CONFIG_FILE, default: 'default')
|
16
17
|
end
|
@@ -89,8 +89,8 @@ module Dev
|
|
89
89
|
true
|
90
90
|
end
|
91
91
|
|
92
|
-
# Remove all leading non
|
93
|
-
# Remove all trailing non
|
92
|
+
# Remove all leading non left-curly-brace characters
|
93
|
+
# Remove all trailing non right-curly-brace characters
|
94
94
|
def strip_non_json(str)
|
95
95
|
str.sub(/\A[^{]*{/m, '{').sub(/}[^}]*\z/m, '}')
|
96
96
|
end
|
@@ -3,21 +3,26 @@ require 'dotenv'
|
|
3
3
|
|
4
4
|
module Dev
|
5
5
|
class Slack
|
6
|
+
# A class to manage slack global configuration settings
|
6
7
|
class Global
|
7
8
|
# The filename where we store the local auth information
|
8
9
|
CONFIG_FILE = "#{Dir.home}/.env.slack".freeze
|
9
10
|
|
11
|
+
# The name of the environmental setting which holds the slack token
|
10
12
|
SLACK_API_TOKEN = 'SLACK_API_TOKEN'.freeze
|
11
13
|
|
14
|
+
# Method to load the slack config file and then configure slack
|
12
15
|
def configure
|
13
16
|
# Always load the env slack auth
|
14
17
|
Dotenv.load(CONFIG_FILE) if File.exist?(CONFIG_FILE)
|
15
18
|
|
16
19
|
::Slack.configure do |c|
|
17
|
-
c.token = ENV.fetch(
|
20
|
+
c.token = ENV.fetch(SLACK_API_TOKEN, nil)
|
18
21
|
c.logger = LOG if ENV['ENABLE_SLACK_DEBUG'].to_s.strip == 'true'
|
19
22
|
end
|
20
23
|
end
|
24
|
+
|
25
|
+
# Run the configure when creating this class to load any existing settings
|
21
26
|
new.configure
|
22
27
|
|
23
28
|
# Write the new slack auth value to the env file
|
@@ -1,18 +1,23 @@
|
|
1
1
|
require 'slack'
|
2
2
|
|
3
3
|
module Dev
|
4
|
+
# The main slack class for posting/uploading messages
|
4
5
|
class Slack
|
6
|
+
# The attribute which contains the underlying slack web client object
|
5
7
|
attr_accessor :client
|
6
8
|
|
9
|
+
# Create a new slack web client and make sure it has valid credentials
|
7
10
|
def initialize
|
8
11
|
@client = ::Slack::Web::Client.new
|
9
12
|
@client.auth_test
|
10
13
|
end
|
11
14
|
|
15
|
+
# Post the text to the given channel
|
12
16
|
def post(channel:, text:)
|
13
17
|
client.chat_postMessage(channel:, text:)
|
14
18
|
end
|
15
19
|
|
20
|
+
# Upload the text to the give channel as a text file
|
16
21
|
def upload_text(channel:, text:, title: 'Text File', filename: 'file.txt')
|
17
22
|
raise 'text should be a string' unless text.is_a?(String)
|
18
23
|
|
@@ -6,11 +6,14 @@ module Dev
|
|
6
6
|
class Application
|
7
7
|
# Contains rake tasks for displaying and setting application variables in parameter store
|
8
8
|
class Config < Dev::Template::ApplicationInterface
|
9
|
-
attr_reader :
|
9
|
+
attr_reader :path_prefix, :key_parameter_path
|
10
|
+
|
11
|
+
# Allow for custom config path_prefix for the application
|
12
|
+
# Allow for custom key parameter path (otherwise base it off the path prefix)
|
13
|
+
def initialize(name, path_prefix, key_parameter_path: nil, exclude: [])
|
14
|
+
@path_prefix = path_prefix
|
15
|
+
@key_parameter_path = key_parameter_path || "#{path_prefix}/kms/id"
|
10
16
|
|
11
|
-
# Allow for custom config path for the application
|
12
|
-
def initialize(name, path, exclude: [])
|
13
|
-
@path = path
|
14
17
|
super(name, exclude:)
|
15
18
|
end
|
16
19
|
|
@@ -18,7 +21,7 @@ module Dev
|
|
18
21
|
def create_list_task!
|
19
22
|
# Have to set a local variable to be accessible inside of the instance_eval block
|
20
23
|
application = @name
|
21
|
-
|
24
|
+
path_prefix = @path_prefix
|
22
25
|
exclude = @exclude
|
23
26
|
|
24
27
|
DEV_COMMANDS_TOP_LEVEL.instance_eval do
|
@@ -29,7 +32,7 @@ module Dev
|
|
29
32
|
desc "List all #{application} configs"
|
30
33
|
task list: %w(init) do
|
31
34
|
puts
|
32
|
-
Dev::Aws::Parameter.new.list(
|
35
|
+
Dev::Aws::Parameter.new.list(path_prefix).each do |it|
|
33
36
|
puts " #{it.name} => #{it.value} (#{it.type})"
|
34
37
|
end
|
35
38
|
puts
|
@@ -44,7 +47,8 @@ module Dev
|
|
44
47
|
def create_set_task!
|
45
48
|
# Have to set a local variable to be accessible inside of the instance_eval block
|
46
49
|
application = @name
|
47
|
-
|
50
|
+
path_prefix = @path_prefix
|
51
|
+
key_parameter_path = @key_parameter_path
|
48
52
|
exclude = @exclude
|
49
53
|
|
50
54
|
DEV_COMMANDS_TOP_LEVEL.instance_eval do
|
@@ -58,7 +62,7 @@ module Dev
|
|
58
62
|
"\n\toptionally specify ENCRYPT=true to change a String type to a SecureString type"
|
59
63
|
task set: %w(ensure_aws_credentials) do
|
60
64
|
raise 'NAME is required' if ENV['NAME'].to_s.strip.blank?
|
61
|
-
raise 'NAME is not found in this apps parameters' if Dev::Aws::Parameter.new.list(
|
65
|
+
raise 'NAME is not found in this apps parameters' if Dev::Aws::Parameter.new.list(path_prefix).none? { |it| it.name == ENV['NAME'] }
|
62
66
|
raise 'VALUE is required' if ENV['VALUE'].to_s.strip.blank?
|
63
67
|
|
64
68
|
param_path = ENV.fetch('NAME', nil)
|
@@ -68,7 +72,7 @@ module Dev
|
|
68
72
|
params = {type: 'String'}
|
69
73
|
if ENV['ENCRYPT'].to_s.strip == 'true' || old_value.type == 'SecureString'
|
70
74
|
params[:type] = 'SecureString'
|
71
|
-
params[:key_id] = Dev::Aws::Parameter.new.get_value(
|
75
|
+
params[:key_id] = Dev::Aws::Parameter.new.get_value(key_parameter_path)
|
72
76
|
end
|
73
77
|
|
74
78
|
message = 'This will change '.light_green +
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: firespring_dev_commands
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.2.pre.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Firespring
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-08-
|
11
|
+
date: 2023-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|