capistrano-addon-fm 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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +4 -0
- data/lib/capistrano/addon/fm/tasks/env-with-secrets.rake +25 -0
- data/lib/capistrano/addon/fm/version.rb +1 -1
- data/lib/capistrano/addon/fm.rb +8 -0
- 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: 334ec6e155c84a16a1ef01dd5d5690dac733f0d6b9be61179226ae5a25804531
|
|
4
|
+
data.tar.gz: 613cb974e55564802a58db41882838d622693fb91892b7e21bcdb47d915df59a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 27a03eea721ae51d58e143e716e26981972fd312ec82caefeb6e4412c3f454ed8f4df866e113cdd27debd5498f6724210e662069483a10b5c9ec325eb2c6a456
|
|
7
|
+
data.tar.gz: ae2795ee3834162a4a41a802257b14ab27f197aaf9c38c61a38360b0c095b5a099b12f3a948227f5e404486b6c02ebace3d36ceba3ecc1abef3985e947e18eeb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
|
3
3
|
|
|
4
|
+
## [0.1.4] - 2026-06-20
|
|
5
|
+
### Added
|
|
6
|
+
- add `cap fm:version` task that will output addon readme file
|
|
7
|
+
- env-with-secrets : add 2 new tasks : `env:set` and `env:set:diff` - same as `env:upload`/`env:upload:diff` but with remote instead of local .env.smth file
|
|
8
|
+
|
|
4
9
|
## [0.1.3] - 2025-08-26
|
|
5
10
|
### Added
|
|
6
11
|
- fix env-with-secrets : fix release_path (latest)
|
data/README.md
CHANGED
|
@@ -18,7 +18,9 @@ require 'capistrano/addon/fm'
|
|
|
18
18
|
|
|
19
19
|
### this will add new tasks for `cap` command
|
|
20
20
|
#### addon related commands (no stage needed):
|
|
21
|
+
cap fm:version Will output this readme file
|
|
21
22
|
cap fm:readme Will output this readme file
|
|
23
|
+
cap fm:readme:tasks Will output this readme file - only Usage block
|
|
22
24
|
new tasks (example run: cap prod TASK - replace 'prod' with your stage (devel/local/etc))
|
|
23
25
|
#### supervisor related commands:
|
|
24
26
|
cap prod supervisor:start Will run supervisorctl `start all`
|
|
@@ -59,6 +61,8 @@ new tasks (example run: cap prod TASK - replace 'prod' with your stage (devel/lo
|
|
|
59
61
|
cap prod system:disk_space: all|df|zfs|btrfs
|
|
60
62
|
cap prod system:connections:count: total|per_address|via_ss
|
|
61
63
|
#### env-with-secrets:
|
|
64
|
+
cap prod env:set Will set server's .env.smth file to server's .env and decrypt
|
|
65
|
+
cap prod env:set:diff Will run `diff` command to server's .env versus server's .env.smth - decrypted
|
|
62
66
|
cap prod env:upload Will upload .env file to server and decrypt
|
|
63
67
|
cap prod env:upload:diff Will run `diff` command to server's .env versus local .env - decrypted
|
|
64
68
|
cap prod env:local:encrypt_file Will encrypt `cap-secrets-LOCAL.txt` to `ap-secrets.enc.b64`
|
|
@@ -7,6 +7,24 @@ namespace "env" do
|
|
|
7
7
|
set :default_file_to_decrypt, 'cap-secrets.enc.b64'
|
|
8
8
|
set :default_encryption_key_file, 'cap-secrets-encryption-key-LOCAL.txt'
|
|
9
9
|
|
|
10
|
+
|
|
11
|
+
# set .env to server (.env.tmp copied to .env)
|
|
12
|
+
task "set" do
|
|
13
|
+
invoke "env:set_remote_env_file"
|
|
14
|
+
invoke! "env:decrypt_remote_env_tmp_file"
|
|
15
|
+
on roles(:app) do
|
|
16
|
+
execute "cd #{shared_path} && cp .env.tmp .env", raise_on_non_zero_exit: false
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
# compares server .env with server .env (via .env.tmp)
|
|
20
|
+
task "set:diff" do
|
|
21
|
+
invoke "env:set_remote_env_file"
|
|
22
|
+
invoke! "env:decrypt_remote_env_tmp_file"
|
|
23
|
+
on roles(:app) do
|
|
24
|
+
execute "cd #{shared_path} && diff .env .env.tmp", raise_on_non_zero_exit: false
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
10
28
|
# uploads .env to server (.env.tmp copied to .env)
|
|
11
29
|
task "upload" do
|
|
12
30
|
invoke! "env:local:check:files:exist"
|
|
@@ -35,6 +53,13 @@ namespace "env" do
|
|
|
35
53
|
end
|
|
36
54
|
end
|
|
37
55
|
end
|
|
56
|
+
# set remote env to server (.env.tmp) - does not decrypt
|
|
57
|
+
task "set_remote_env_file" do
|
|
58
|
+
on roles(:app) do |host|
|
|
59
|
+
latest_release_path = "#{shared_path.sub(/shared$/, 'releases')}/#{capture("ls -1 #{shared_path.sub(/shared$/, 'releases')} | sort -r | head -n 1").strip}"
|
|
60
|
+
execute "cp #{latest_release_path}/#{host.properties.env_file_location} #{shared_path}/.env.tmp"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
38
63
|
# decrypt .env file on server (encrypted .env.tmp to decrypted .env.tmp)
|
|
39
64
|
task "decrypt_remote_env_tmp_file" do
|
|
40
65
|
on roles(:app) do
|
data/lib/capistrano/addon/fm.rb
CHANGED
|
@@ -18,6 +18,14 @@ module Capistrano
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
namespace 'fm' do
|
|
21
|
+
task 'version' do
|
|
22
|
+
run_locally do
|
|
23
|
+
gem_root = File.expand_path('./', __dir__)
|
|
24
|
+
Dir.chdir(gem_root) do
|
|
25
|
+
system('cat fm/version.rb | grep VERSION')
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
21
29
|
task 'readme' do
|
|
22
30
|
run_locally do
|
|
23
31
|
gem_root = File.expand_path('../../../', __dir__)
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: capistrano-addon-fm
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Florin Motoc
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-05-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: capistrano
|