capistrano-ops 0.2.13 → 1.0.0

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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +7 -0
  3. data/README.md +121 -29
  4. data/capistrano-ops.gemspec +2 -0
  5. data/lib/capistrano/ops/backup/helper.rb +56 -0
  6. data/lib/capistrano/ops/{capistrano/v3/tasks/backup → backup/tasks}/database/create.rake +1 -2
  7. data/lib/capistrano/ops/{capistrano/v3/tasks/backup → backup/tasks}/database/pull.rake +1 -2
  8. data/lib/capistrano/ops/{capistrano/v3/tasks/backup → backup/tasks}/storage/create.rake +1 -2
  9. data/lib/capistrano/ops/{capistrano/v3/tasks/backup → backup/tasks}/storage/pull.rake +1 -2
  10. data/lib/capistrano/ops/backup.rb +14 -4
  11. data/lib/capistrano/ops/capistrano.rb +7 -10
  12. data/lib/capistrano/ops/figaro_yml/helpers.rb +184 -0
  13. data/lib/capistrano/ops/figaro_yml/paths.rb +19 -0
  14. data/lib/capistrano/ops/figaro_yml/tasks/backup.rake +26 -0
  15. data/lib/capistrano/ops/figaro_yml/tasks/check.rake +12 -0
  16. data/lib/capistrano/ops/figaro_yml/tasks/check_config_present.rake +12 -0
  17. data/lib/capistrano/ops/figaro_yml/tasks/check_figaro_file_exists.rake +12 -0
  18. data/lib/capistrano/ops/figaro_yml/tasks/check_git_tracking.rake +12 -0
  19. data/lib/capistrano/ops/figaro_yml/tasks/compare.rake +53 -0
  20. data/lib/capistrano/ops/figaro_yml/tasks/create_local.rake +27 -0
  21. data/lib/capistrano/ops/figaro_yml/tasks/figaro_yml_symlink.rake +10 -0
  22. data/lib/capistrano/ops/figaro_yml/tasks/get.rake +45 -0
  23. data/lib/capistrano/ops/figaro_yml/tasks/get_stage.rake +15 -0
  24. data/lib/capistrano/ops/figaro_yml/tasks/load.rake +10 -0
  25. data/lib/capistrano/ops/figaro_yml/tasks/rollback.rake +22 -0
  26. data/lib/capistrano/ops/figaro_yml/tasks/setup.rake +16 -0
  27. data/lib/capistrano/ops/figaro_yml/tasks/sort_local.rake +18 -0
  28. data/lib/capistrano/ops/figaro_yml.rb +29 -0
  29. data/lib/capistrano/ops/helper.rb +14 -0
  30. data/lib/capistrano/ops/invoke/tasks/invoke.rake +25 -0
  31. data/lib/capistrano/ops/invoke.rb +3 -0
  32. data/lib/capistrano/ops/logrotate/helpers.rb +50 -0
  33. data/lib/capistrano/ops/logrotate/paths.rb +47 -0
  34. data/lib/capistrano/ops/{capistrano/v3/tasks/logrotate → logrotate/tasks}/check.rake +3 -5
  35. data/lib/capistrano/ops/{capistrano/v3/tasks/logrotate → logrotate/tasks}/disable.rake +2 -5
  36. data/lib/capistrano/ops/logrotate/tasks/enable.rake +28 -0
  37. data/lib/capistrano/ops/logrotate/tasks/load.rake +10 -0
  38. data/lib/capistrano/ops/logrotate.rb +19 -0
  39. data/lib/capistrano/ops/logs/helpers.rb +16 -0
  40. data/lib/capistrano/ops/logs/paths.rb +23 -0
  41. data/lib/capistrano/ops/logs/tasks/load.rake +9 -0
  42. data/lib/capistrano/ops/logs/tasks/rails.rake +18 -0
  43. data/lib/capistrano/ops/logs/tasks/sidekiq.rake +42 -0
  44. data/lib/capistrano/ops/logs.rb +18 -0
  45. data/lib/capistrano/ops/{backup → rails/lib/backup}/s3.rb +1 -1
  46. data/lib/capistrano/ops/rails/lib/backup.rb +6 -0
  47. data/lib/capistrano/ops/rails/lib/notification.rb +9 -0
  48. data/lib/capistrano/ops/rails/lib/railtie.rb +17 -0
  49. data/lib/capistrano/ops/{tasks → rails/lib/tasks}/pg/postgres_helper.rb +1 -1
  50. data/lib/capistrano/ops/version.rb +1 -1
  51. data/lib/capistrano/ops/{capistrano/v3/tasks/whenever.rake → whenever/tasks/show_crontab.rake} +1 -3
  52. data/lib/capistrano/ops/whenever.rb +17 -0
  53. data/lib/capistrano/ops/wkhtmltopdf/helpers.rb +50 -0
  54. data/lib/capistrano/ops/wkhtmltopdf/tasks/setup.rake +17 -0
  55. data/lib/capistrano/ops/wkhtmltopdf.rb +17 -1
  56. data/lib/capistrano/ops.rb +4 -3
  57. metadata +88 -31
  58. data/lib/capistrano/ops/capistrano/tasks/wkhtmltopdf.rake +0 -48
  59. data/lib/capistrano/ops/capistrano/v3/tasks/backup/backup_helper.rb +0 -50
  60. data/lib/capistrano/ops/capistrano/v3/tasks/figaro_yml.rake +0 -139
  61. data/lib/capistrano/ops/capistrano/v3/tasks/invoke.rake +0 -23
  62. data/lib/capistrano/ops/capistrano/v3/tasks/logrotate/enable.rake +0 -24
  63. data/lib/capistrano/ops/capistrano/v3/tasks/logrotate/logrotate_helper.rb +0 -68
  64. data/lib/capistrano/ops/capistrano/v3/tasks/logs/rails.rake +0 -16
  65. data/lib/capistrano/ops/notification.rb +0 -9
  66. data/lib/capistrano/ops/railtie.rb +0 -15
  67. /data/lib/capistrano/ops/{capistrano/v3/tasks/logrotate → logrotate/tasks}/templates/logrotate.conf.erb +0 -0
  68. /data/lib/capistrano/ops/{capistrano/v3/tasks/logrotate → logrotate/tasks}/templates/schedule.rb.erb +0 -0
  69. /data/lib/capistrano/ops/{backup → rails/lib/backup}/api.rb +0 -0
  70. /data/lib/capistrano/ops/{backup → rails/lib/backup}/s3_helper.rb +0 -0
  71. /data/lib/capistrano/ops/{notification → rails/lib/notification}/api.rb +0 -0
  72. /data/lib/capistrano/ops/{notification → rails/lib/notification}/slack.rb +0 -0
  73. /data/lib/capistrano/ops/{notification → rails/lib/notification}/webhook.rb +0 -0
  74. /data/lib/capistrano/ops/{tasks → rails/lib/tasks}/pg/dump.rake +0 -0
  75. /data/lib/capistrano/ops/{tasks → rails/lib/tasks}/pg/remove_old_dumps.rake +0 -0
  76. /data/lib/capistrano/ops/{tasks → rails/lib/tasks}/storage/backup.rake +0 -0
  77. /data/lib/capistrano/ops/{tasks → rails/lib/tasks}/storage/remove_old_backups.rake +0 -0
@@ -0,0 +1,47 @@
1
+ require 'pathname'
2
+
3
+ module Capistrano
4
+ module Ops
5
+ module Logrotate
6
+ module Paths
7
+ # local paths
8
+ def logrotate_config_file_template
9
+ Pathname.new fetch(:logrotate_config_file_template)
10
+ end
11
+
12
+ def logrotate_schedule_file_template
13
+ Pathname.new fetch(:logrotate_schedule_file_template)
14
+ end
15
+
16
+ # remote paths
17
+ def logrotate_basepath
18
+ shared_path.join fetch(:logrotate_basepath)
19
+ end
20
+
21
+ def logrotate_config_path
22
+ shared_path.join fetch(:logrotate_config_path)
23
+ end
24
+
25
+ def logrotate_config_file_path
26
+ logrotate_basepath.join logrotate_config_filename
27
+ end
28
+
29
+ def logrotate_schedule_file_path
30
+ logrotate_basepath.join logrotate_schedule_filename
31
+ end
32
+
33
+ def log_file_path
34
+ shared_path.join fetch(:log_file_path)
35
+ end
36
+
37
+ def logrotate_schedule_filename
38
+ File.basename(logrotate_schedule_file_template, '.erb')
39
+ end
40
+
41
+ def logrotate_config_filename
42
+ File.basename(logrotate_config_file_template, '.erb')
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -1,18 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'logrotate_helper'
4
-
5
3
  namespace :logrotate do
6
- include LogrotateHelper
4
+ include Capistrano::Ops::Logrotate::Helpers
5
+ include Capistrano::Ops::Logrotate::Paths
7
6
 
8
7
  desc 'show logrotate state and config'
9
8
  task :check do
10
9
  on roles(:app) do
11
10
  within release_path do
12
- set_config
13
11
  if logrotate_enabled
14
12
  puts "logrotate running with config\n========================="
15
- puts capture "cat #{@config_file_path}"
13
+ puts capture "cat #{logrotate_config_file_path}"
16
14
  else
17
15
  puts 'logrotate disabled'
18
16
  end
@@ -1,15 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'logrotate_helper'
4
-
5
3
  namespace :logrotate do
6
- include LogrotateHelper
7
-
4
+ include Capistrano::Ops::Logrotate::Paths
5
+ include Capistrano::Ops::Logrotate::Helpers
8
6
  desc 'disable logrotate'
9
7
  task :disable do
10
8
  on roles(:app) do
11
9
  within release_path do
12
- set_config
13
10
  if logrotate_disabled
14
11
  puts 'logrotate already disabled'
15
12
  else
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :logrotate do
4
+ include Capistrano::Ops::Logrotate::Helpers
5
+ include Capistrano::Ops::Logrotate::Paths
6
+
7
+ desc 'Enable logrotate for the application'
8
+ task :enable do
9
+ on roles(:app) do
10
+ within release_path do
11
+ @log_file_path = log_file_path
12
+ @shared_path = shared_path
13
+
14
+ if logrotate_enabled
15
+ puts "logrotate already enabled:\n========================="
16
+ puts capture "cat #{logrotate_config_file_path}"
17
+ else
18
+ puts config_template
19
+ puts schedule_template
20
+ make_basepath
21
+ upload! StringIO.new(config_template), logrotate_config_file_path
22
+ upload! StringIO.new(schedule_template), logrotate_schedule_file_path
23
+ whenever 'update' if logrotate_enabled
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :load do
4
+ task :defaults do
5
+ set :logrotate_config_file_template, File.expand_path('templates/logrotate.conf.erb', __dir__)
6
+ set :logrotate_schedule_file_template, File.expand_path('templates/schedule.rb.erb', __dir__)
7
+ set :logrotate_basepath, 'logrotate'
8
+ set :log_file_path, 'log'
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capistrano/ops/helper'
4
+ require 'capistrano/ops/logrotate/helpers'
5
+ require 'capistrano/ops/logrotate/paths'
6
+
7
+ module TaskLoader
8
+ extend Capistrano::Ops::Helper
9
+
10
+ def self.load_tasks_if_gem_present(gem_name, task_path, warning_message)
11
+ if gem_in_gemfile?(gem_name)
12
+ Dir.glob("#{File.expand_path(__dir__)}/#{task_path}/**/*.rake").each { |f| load f }
13
+ else
14
+ puts warning_message
15
+ end
16
+ end
17
+ end
18
+
19
+ TaskLoader.load_tasks_if_gem_present('whenever', 'logrotate/tasks', 'WARNING: Gemfile does not include whenever gem which is required for logrotate tasks')
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capistrano
4
+ module Ops
5
+ module Logs
6
+ module Helpers
7
+ def trap_interrupt
8
+ trap('INT') do
9
+ print "\rDisconnecting... Done.\n"
10
+ exit 0
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'pathname'
4
+
5
+ module Capistrano
6
+ module Ops
7
+ module Logs
8
+ module Paths
9
+ def rails_log_file_path
10
+ shared_path.join fetch(:rails_log_file_name) || "log/#{fetch(:rails_env)}.log"
11
+ end
12
+
13
+ def sidekiq_log_file_path
14
+ shared_path.join fetch(:sidekiq_log_file_name) || 'log/sidekiq.log'
15
+ end
16
+
17
+ def sidekiq_error_log_file_path
18
+ shared_path.join fetch(:sidekiq_error_log_file_name) || 'log/sidekiq.error.log'
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :load do
4
+ task :defaults do
5
+ set :rails_log_file_name, nil
6
+ set :sidekiq_log_file_name, nil
7
+ set :sidekiq_error_log_file_name, nil
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :logs do
4
+ include Capistrano::Ops::Logs::Paths
5
+ include Capistrano::Ops::Logs::Helpers
6
+
7
+ desc 'Tail Rails logs'
8
+ task :rails do
9
+ on roles(fetch(:rake_roles, :app)) do
10
+ trap_interrupt
11
+
12
+ execute "tail -f #{rails_log_file_path}" do |_channel, stream, data|
13
+ puts data
14
+ break if stream == :err
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :logs do
4
+ include Capistrano::Ops::Logs::Paths
5
+ include Capistrano::Ops::Logs::Helpers
6
+
7
+ desc 'Tail Rails info logs'
8
+ task 'sidekiq:info' do
9
+ on roles(fetch(:rake_roles, :app)) do
10
+ trap_interrupt
11
+
12
+ execute "tail -f #{sidekiq_log_file_path}" do |_channel, stream, data|
13
+ puts data
14
+ break if stream == :err
15
+ end
16
+ end
17
+ end
18
+
19
+ desc 'Tail Sidekiq error logs'
20
+ task 'sidekiq:errors' do
21
+ on roles(fetch(:rake_roles, :app)) do
22
+ trap_interrupt
23
+
24
+ execute "tail -f #{sidekiq_error_log_file_path}" do |_channel, stream, data|
25
+ puts data
26
+ break if stream == :err
27
+ end
28
+ end
29
+ end
30
+
31
+ desc 'Tail all Sidekiq logs'
32
+ task :sidekiq do
33
+ on roles(fetch(:rake_roles, :app)) do
34
+ trap_interrupt
35
+
36
+ execute "tail -f #{sidekiq_log_file_path} & tail -f #{sidekiq_error_log_file_path}" do |_channel, stream, data|
37
+ puts data
38
+ break if stream == :err
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capistrano/ops/helper'
4
+ require 'capistrano/ops/logs/paths'
5
+ require 'capistrano/ops/logs/helpers'
6
+
7
+ module TaskLoader
8
+ extend Capistrano::Ops::Helper
9
+ def self.load_tasks_if_gem_present(gem_name, task_path, warning_message)
10
+ if gem_in_gemfile?(gem_name)
11
+ Dir.glob("#{File.expand_path(__dir__)}/#{task_path}/**/*.rake").each { |f| load f }
12
+ else
13
+ puts warning_message
14
+ end
15
+ end
16
+ end
17
+
18
+ TaskLoader.load_tasks_if_gem_present('rails', 'logs/tasks', 'WARNING: Gemfile does not include rails gem which is required for logs tasks')
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Backup
4
4
  require 'aws-sdk-s3'
5
- require 'capistrano/ops/backup/s3_helper'
5
+ require 'capistrano/ops/rails/lib/backup/s3_helper'
6
6
  class S3
7
7
  include Backup::S3Helper
8
8
  attr_accessor :endpoint, :region, :access_key_id, :secret_access_key, :s3_resource
@@ -0,0 +1,6 @@
1
+ require 'capistrano/ops/rails/lib/backup/api'
2
+ require 'capistrano/ops/rails/lib/backup/s3'
3
+
4
+ module Backup
5
+ class Error < StandardError; end
6
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capistrano/ops/rails/lib/notification/api'
4
+ require 'capistrano/ops/rails/lib/notification/slack'
5
+ require 'capistrano/ops/rails/lib/notification/webhook'
6
+
7
+ module Notification
8
+ class Error < StandardError; end
9
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails'
4
+ # require 'capistrano/ops'
5
+ module Capistrano
6
+ module Ops
7
+ module Libs
8
+ class Railtie < ::Rails::Railtie
9
+ railtie_name :ops
10
+ rake_tasks do
11
+ path = File.expand_path(__dir__)
12
+ Dir.glob("#{path}/tasks/**/*.rake").each { |f| load f }
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -54,7 +54,7 @@ module PostgresHelper
54
54
  commandlist = []
55
55
  commandlist << "export PGPASSWORD='#{@password}'"
56
56
  commandlist << "cd #{@backup_path}"
57
- commandlist << "pg_dump -Fc #{options.join('')} > #{@filename}"
57
+ commandlist << "pg_dump --no-acl --no-owner #{options.join('')} > #{@filename}"
58
58
  commandlist.join(' && ')
59
59
  end
60
60
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Capistrano
4
4
  module Ops
5
- VERSION = '0.2.13'
5
+ VERSION = '1.0.0'
6
6
  end
7
7
  end
@@ -1,11 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  namespace :whenever do
4
- # Default to :app role
5
- rake_roles = fetch(:rake_roles, :app)
6
4
  desc 'show crontab'
7
5
  task :show_crontab do
8
- on roles(rake_roles) do
6
+ on roles(fetch(:rake_roles, :app)) do
9
7
  puts capture 'crontab -l'
10
8
  end
11
9
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'capistrano/ops/helper'
4
+
5
+ module TaskLoader
6
+ extend Capistrano::Ops::Helper
7
+
8
+ def self.load_tasks_if_gem_present(gem_name, task_path, warning_message)
9
+ if gem_in_gemfile?(gem_name)
10
+ Dir.glob("#{File.expand_path(__dir__)}/#{task_path}/**/*.rake").each { |f| load f }
11
+ else
12
+ puts warning_message
13
+ end
14
+ end
15
+ end
16
+
17
+ TaskLoader.load_tasks_if_gem_present('whenever', 'whenever/tasks', 'WARNING: Gemfile does not include whenever gem which is required for logrotate tasks')
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Capistrano
4
+ module Ops
5
+ module Helper
6
+ def binary_path
7
+ gem_path = capture(:bundle, 'show', 'wkhtmltopdf-binary').strip
8
+ "#{gem_path}/bin"
9
+ end
10
+
11
+ def gem_version
12
+ capture(:cat, 'config/initializers/wicked_pdf.rb').scan(/wkhtmltopdf_ubuntu_(\d+\.\d+)_amd64/).flatten.first
13
+ end
14
+
15
+ def binary_path_and_version
16
+ [binary_path, gem_version]
17
+ end
18
+
19
+ def file_existing?(file)
20
+ test("[ -f #{file} ]")
21
+ end
22
+
23
+ def right_permissions?(file)
24
+ test("[ $(stat -c '%a' #{file}) = '777' ]")
25
+ end
26
+
27
+ def check_file_and_permissions(binary_path, version)
28
+ binary_file = "#{binary_path}/wkhtmltopdf_ubuntu_#{version}_amd64"
29
+
30
+ if file_existing?(binary_file)
31
+ info('wkhtmltopdf binary already extracted')
32
+
33
+ if right_permissions?(binary_file)
34
+ info('wkhtmltopdf binary has already the right permissions')
35
+ else
36
+ info('adding right permissions to wkhtmltopdf binary')
37
+ execute("chmod 777 #{binary_file}")
38
+ end
39
+ else
40
+ info('extracting wkhtmltopdf binary')
41
+ # extract the binary but keep the gzip file
42
+ execute("cd #{binary_path} && gzip -dk wkhtmltopdf_ubuntu_#{version}_amd64.gz")
43
+ # add execute permission to the binary
44
+ execute("chmod 777 #{binary_file}")
45
+ end
46
+ info('wkhtmltopdf setup finished')
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :wkhtmltopdf do
4
+ include Capistrano::Ops::Wkhtmltopdf::Helpers
5
+ after 'deploy:symlink:release', 'wkhtmltopdf:setup'
6
+
7
+ desc 'unzip wkhtmltopdf if necessary'
8
+ task :setup do
9
+ on roles(:app) do
10
+ within release_path do
11
+ binary_path, version = binary_path_and_version
12
+ info("setup wkhtmltopdf version #{version}")
13
+ check_file_and_permissions(binary_path, version)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- load File.expand_path('capistrano/tasks/wkhtmltopdf.rake', __dir__)
3
+ require 'capistrano/ops/helper'
4
+ require 'capistrano/ops/wkhtmltopdf/helpers'
5
+
6
+ module TaskLoader
7
+ extend Capistrano::Ops::Helper
8
+
9
+ def self.load_tasks_if_gem_present(gem_name, task_path, warning_message)
10
+ if gem_in_gemfile?(gem_name)
11
+ Dir.glob("#{File.expand_path(__dir__)}/#{task_path}/**/*.rake").each { |f| load f }
12
+ else
13
+ puts warning_message
14
+ end
15
+ end
16
+ end
17
+
18
+ TaskLoader.load_tasks_if_gem_present('wicked-pdf', 'wkhtmltopdf/tasks',
19
+ 'WARNING: Gemfile does not include wkhtmltopdf-binary gem which is required for wkhtmltopdf tasks')
@@ -2,10 +2,11 @@
2
2
 
3
3
  module Capistrano
4
4
  module Ops
5
- require 'capistrano/ops/backup'
6
- require 'capistrano/ops/notification'
7
- require 'capistrano/ops/railtie' if defined?(Rails)
5
+ require 'capistrano/ops/rails/lib/backup'
6
+ require 'capistrano/ops/rails/lib/notification'
7
+ require 'capistrano/ops/rails/lib/railtie' if defined?(Rails)
8
8
  require 'capistrano/ops/capistrano' if defined?(Capistrano::VERSION)
9
+
9
10
  def self.path
10
11
  Dir.pwd
11
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.13
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Crusius
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-12 00:00:00.000000000 Z
11
+ date: 2024-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -94,6 +94,34 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '10.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.56.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.56.2
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-performance
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 1.19.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 1.19.0
97
125
  description: A collection of devops tasks for rails applications
98
126
  email:
99
127
  - florian@zauberware.com
@@ -116,39 +144,68 @@ files:
116
144
  - capistrano-ops.gemspec
117
145
  - lib/capistrano/ops.rb
118
146
  - lib/capistrano/ops/backup.rb
119
- - lib/capistrano/ops/backup/api.rb
120
- - lib/capistrano/ops/backup/s3.rb
121
- - lib/capistrano/ops/backup/s3_helper.rb
147
+ - lib/capistrano/ops/backup/helper.rb
148
+ - lib/capistrano/ops/backup/tasks/database/create.rake
149
+ - lib/capistrano/ops/backup/tasks/database/pull.rake
150
+ - lib/capistrano/ops/backup/tasks/storage/create.rake
151
+ - lib/capistrano/ops/backup/tasks/storage/pull.rake
122
152
  - lib/capistrano/ops/capistrano.rb
123
- - lib/capistrano/ops/capistrano/tasks/wkhtmltopdf.rake
124
153
  - lib/capistrano/ops/capistrano/v3/tasks/backup.rake
125
- - lib/capistrano/ops/capistrano/v3/tasks/backup/backup_helper.rb
126
- - lib/capistrano/ops/capistrano/v3/tasks/backup/database/create.rake
127
- - lib/capistrano/ops/capistrano/v3/tasks/backup/database/pull.rake
128
- - lib/capistrano/ops/capistrano/v3/tasks/backup/storage/create.rake
129
- - lib/capistrano/ops/capistrano/v3/tasks/backup/storage/pull.rake
130
- - lib/capistrano/ops/capistrano/v3/tasks/figaro_yml.rake
131
- - lib/capistrano/ops/capistrano/v3/tasks/invoke.rake
132
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/check.rake
133
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/disable.rake
134
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/enable.rake
135
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/logrotate_helper.rb
136
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/templates/logrotate.conf.erb
137
- - lib/capistrano/ops/capistrano/v3/tasks/logrotate/templates/schedule.rb.erb
138
- - lib/capistrano/ops/capistrano/v3/tasks/logs/rails.rake
139
- - lib/capistrano/ops/capistrano/v3/tasks/whenever.rake
140
- - lib/capistrano/ops/notification.rb
141
- - lib/capistrano/ops/notification/api.rb
142
- - lib/capistrano/ops/notification/slack.rb
143
- - lib/capistrano/ops/notification/webhook.rb
144
- - lib/capistrano/ops/railtie.rb
145
- - lib/capistrano/ops/tasks/pg/dump.rake
146
- - lib/capistrano/ops/tasks/pg/postgres_helper.rb
147
- - lib/capistrano/ops/tasks/pg/remove_old_dumps.rake
148
- - lib/capistrano/ops/tasks/storage/backup.rake
149
- - lib/capistrano/ops/tasks/storage/remove_old_backups.rake
154
+ - lib/capistrano/ops/figaro_yml.rb
155
+ - lib/capistrano/ops/figaro_yml/helpers.rb
156
+ - lib/capistrano/ops/figaro_yml/paths.rb
157
+ - lib/capistrano/ops/figaro_yml/tasks/backup.rake
158
+ - lib/capistrano/ops/figaro_yml/tasks/check.rake
159
+ - lib/capistrano/ops/figaro_yml/tasks/check_config_present.rake
160
+ - lib/capistrano/ops/figaro_yml/tasks/check_figaro_file_exists.rake
161
+ - lib/capistrano/ops/figaro_yml/tasks/check_git_tracking.rake
162
+ - lib/capistrano/ops/figaro_yml/tasks/compare.rake
163
+ - lib/capistrano/ops/figaro_yml/tasks/create_local.rake
164
+ - lib/capistrano/ops/figaro_yml/tasks/figaro_yml_symlink.rake
165
+ - lib/capistrano/ops/figaro_yml/tasks/get.rake
166
+ - lib/capistrano/ops/figaro_yml/tasks/get_stage.rake
167
+ - lib/capistrano/ops/figaro_yml/tasks/load.rake
168
+ - lib/capistrano/ops/figaro_yml/tasks/rollback.rake
169
+ - lib/capistrano/ops/figaro_yml/tasks/setup.rake
170
+ - lib/capistrano/ops/figaro_yml/tasks/sort_local.rake
171
+ - lib/capistrano/ops/helper.rb
172
+ - lib/capistrano/ops/invoke.rb
173
+ - lib/capistrano/ops/invoke/tasks/invoke.rake
174
+ - lib/capistrano/ops/logrotate.rb
175
+ - lib/capistrano/ops/logrotate/helpers.rb
176
+ - lib/capistrano/ops/logrotate/paths.rb
177
+ - lib/capistrano/ops/logrotate/tasks/check.rake
178
+ - lib/capistrano/ops/logrotate/tasks/disable.rake
179
+ - lib/capistrano/ops/logrotate/tasks/enable.rake
180
+ - lib/capistrano/ops/logrotate/tasks/load.rake
181
+ - lib/capistrano/ops/logrotate/tasks/templates/logrotate.conf.erb
182
+ - lib/capistrano/ops/logrotate/tasks/templates/schedule.rb.erb
183
+ - lib/capistrano/ops/logs.rb
184
+ - lib/capistrano/ops/logs/helpers.rb
185
+ - lib/capistrano/ops/logs/paths.rb
186
+ - lib/capistrano/ops/logs/tasks/load.rake
187
+ - lib/capistrano/ops/logs/tasks/rails.rake
188
+ - lib/capistrano/ops/logs/tasks/sidekiq.rake
189
+ - lib/capistrano/ops/rails/lib/backup.rb
190
+ - lib/capistrano/ops/rails/lib/backup/api.rb
191
+ - lib/capistrano/ops/rails/lib/backup/s3.rb
192
+ - lib/capistrano/ops/rails/lib/backup/s3_helper.rb
193
+ - lib/capistrano/ops/rails/lib/notification.rb
194
+ - lib/capistrano/ops/rails/lib/notification/api.rb
195
+ - lib/capistrano/ops/rails/lib/notification/slack.rb
196
+ - lib/capistrano/ops/rails/lib/notification/webhook.rb
197
+ - lib/capistrano/ops/rails/lib/railtie.rb
198
+ - lib/capistrano/ops/rails/lib/tasks/pg/dump.rake
199
+ - lib/capistrano/ops/rails/lib/tasks/pg/postgres_helper.rb
200
+ - lib/capistrano/ops/rails/lib/tasks/pg/remove_old_dumps.rake
201
+ - lib/capistrano/ops/rails/lib/tasks/storage/backup.rake
202
+ - lib/capistrano/ops/rails/lib/tasks/storage/remove_old_backups.rake
150
203
  - lib/capistrano/ops/version.rb
204
+ - lib/capistrano/ops/whenever.rb
205
+ - lib/capistrano/ops/whenever/tasks/show_crontab.rake
151
206
  - lib/capistrano/ops/wkhtmltopdf.rb
207
+ - lib/capistrano/ops/wkhtmltopdf/helpers.rb
208
+ - lib/capistrano/ops/wkhtmltopdf/tasks/setup.rake
152
209
  homepage: https://github.com/zauberware/capistrano-ops
153
210
  licenses:
154
211
  - MIT