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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5701d4dd587e45f260c6d05bded677f6e2885b1ef22f0d7b75f2a8997149c95b
4
- data.tar.gz: f19ab3fb1ba5e7b83afcd908e863023b3effcb19e4becb66a4b69a035957396b
3
+ metadata.gz: 334ec6e155c84a16a1ef01dd5d5690dac733f0d6b9be61179226ae5a25804531
4
+ data.tar.gz: 613cb974e55564802a58db41882838d622693fb91892b7e21bcdb47d915df59a
5
5
  SHA512:
6
- metadata.gz: 2e57f2376477429d2557d52de9c75eacf4bfff991040a41f6c417e1c790ca8cd6243ac89e2130af361f0a10c7bdf5dae26d93bab8446ce02c7356c21b03ab523
7
- data.tar.gz: 772dea6e4d0fed85789331725dd40bd8b80bedb14fda966d08711abd7078992a394371fde20d4e5412d46f3251255fd06360a1255d3be7f6672e07bcf6e9f305
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
@@ -3,7 +3,7 @@
3
3
  module Capistrano
4
4
  module Addon
5
5
  module Fm
6
- VERSION = "0.1.3"
6
+ VERSION = "0.1.4"
7
7
  end
8
8
  end
9
9
  end
@@ -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.3
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: 2025-08-26 00:00:00.000000000 Z
11
+ date: 2026-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano