capistrano-ops 0.2.12 → 0.2.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c6192691d485f5348cadfb470f7c06c7e86e4aca51daedcb1ffe33be9923a2d
4
- data.tar.gz: 469cba09f0f444133aa54451d8e7f06fac4430d3ab9cc67bc52714f76402949f
3
+ metadata.gz: cec4486500e5ddac70640e6f3d074b51b361d649079e98f9ef6d337712c3de23
4
+ data.tar.gz: ac8df454d33822890a673e800db7492bc7d4d2a7f54c0fe91378648fa163a2f8
5
5
  SHA512:
6
- metadata.gz: 0bca2a6b0dd5e2b7dd724c623ea1f9f22bb6c05ca16ee654f805253fac5dedbf955c1c729dac8aa3c4d66822eead8b38cb7a62645dca5d7b11fe034cf860b3ca
7
- data.tar.gz: 74c95eea7b0f4bc7b95b24010f7a651a987a06234f455c63e68d9e8cac3961930a2fe0cc9dee105be44401b40aef01a40ba274734cd1bf9cc3255884dfe6766c
6
+ metadata.gz: c97bd7b0f7b0f9968b30d81a8807da57d690a4700e6674596f64b970727e4d99606af7ac8e192691fae63a0e5cf67ee54936bda0d1d06d935c37e068b3afdf41
7
+ data.tar.gz: aac3a0d13aa1c8f78ab77f5943b2ee5944c561829831c117afd8dc1cfd0e0e638406c9bcda52f92c1cc53b1f8eeef455e9d62e1929ffe984e3408812a22de4eb
data/README.md CHANGED
@@ -264,6 +264,34 @@ sudo apt-get install logrotate
264
264
 
265
265
  Once logrotate is installed, you can use the capistrano-ops tasks to manage it.
266
266
 
267
+ ## Wkhtmltopdf Setup
268
+
269
+ This script is used to setup `wkhtmltopdf-binary` in your deployment environment. It is designed to work with Capistrano.
270
+
271
+ The main task `setup` is hooked to run after the `deploy:symlink:release` task.
272
+ It performs the following operations:
273
+
274
+ - unzip the necessary binary file
275
+
276
+ - set the binary file permissions
277
+
278
+ The script assumes, that you have a intializer file for `wicked_pdf` gem, which sets the path to the binary file.
279
+ for example:
280
+
281
+ ```ruby
282
+ # config/initializers/wicked_pdf.rb
283
+ WickedPdf.config = {
284
+ exe_path: "#{Bundler.bundle_path}/gems/wkhtmltopdf-binary-0.12.6.6/bin/wkhtmltopdf_ubuntu_18.04_amd64",
285
+ }
286
+ ```
287
+
288
+ To use this script, include it in your Capistrano tasks and it will automatically run during deployment.
289
+
290
+ ```ruby
291
+ # Capfile
292
+ require 'capistrano/ops/wkhtmltopdf'
293
+ ```
294
+
267
295
  ## Contributing
268
296
 
269
297
  1. Fork it ( https://github.com/zauberware/capistrano-ops/fork )
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :wkhtmltopdf do
4
+ after 'deploy:symlink:release', 'wkhtmltopdf:setup'
5
+
6
+ desc 'unzip wkhtmltopdf if necessary'
7
+ task :setup do
8
+ on roles(:app) do
9
+ within release_path do
10
+ binary_path, version = binary_path_and_version
11
+ info("setup wkhtmltopdf version #{version}")
12
+ check_file_and_permissions(binary_path, version)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ def binary_path_and_version
18
+ # get the binary path of wkhtmltopdf-binary
19
+ gem_path = capture(:bundle, 'show', 'wkhtmltopdf-binary').strip
20
+ binary_path = "#{gem_path}/bin"
21
+
22
+ # get the use wkhtmltopdf_ubuntu version from the wicked_pdf initializer
23
+ version = capture(:cat, 'config/initializers/wicked_pdf.rb').scan(/wkhtmltopdf_ubuntu_(\d+\.\d+)_amd64/).flatten.first
24
+
25
+ [binary_path, version]
26
+ end
27
+
28
+ def check_file_and_permissions(binary_path, version)
29
+ binary_file = "#{binary_path}/wkhtmltopdf_ubuntu_#{version}_amd64"
30
+
31
+ if test("[ -f #{binary_file} ]")
32
+ info('wkhtmltopdf binary already extracted')
33
+
34
+ if test("[ $(stat -c '%a' #{binary_file}) = '777' ]")
35
+ info('wkhtmltopdf binary has already the right permissions')
36
+ else
37
+ info('adding right permissions to wkhtmltopdf binary')
38
+ execute("chmod 777 #{binary_file}")
39
+ end
40
+ else
41
+ info('extracting wkhtmltopdf binary')
42
+ # extract the binary but keep the gzip file
43
+ execute("cd #{binary_path} && gzip -dk wkhtmltopdf_ubuntu_#{version}_amd64.gz")
44
+ # add execute permission to the binary
45
+ execute("chmod 777 #{binary_file}")
46
+ end
47
+ info('wkhtmltopdf setup finished')
48
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Capistrano
4
4
  module Ops
5
- VERSION = '0.2.12'
5
+ VERSION = '0.2.13'
6
6
  end
7
7
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ load File.expand_path('capistrano/tasks/wkhtmltopdf.rake', __dir__)
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.12
4
+ version: 0.2.13
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-10 00:00:00.000000000 Z
11
+ date: 2024-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -120,6 +120,7 @@ files:
120
120
  - lib/capistrano/ops/backup/s3.rb
121
121
  - lib/capistrano/ops/backup/s3_helper.rb
122
122
  - lib/capistrano/ops/capistrano.rb
123
+ - lib/capistrano/ops/capistrano/tasks/wkhtmltopdf.rake
123
124
  - lib/capistrano/ops/capistrano/v3/tasks/backup.rake
124
125
  - lib/capistrano/ops/capistrano/v3/tasks/backup/backup_helper.rb
125
126
  - lib/capistrano/ops/capistrano/v3/tasks/backup/database/create.rake
@@ -147,6 +148,7 @@ files:
147
148
  - lib/capistrano/ops/tasks/storage/backup.rake
148
149
  - lib/capistrano/ops/tasks/storage/remove_old_backups.rake
149
150
  - lib/capistrano/ops/version.rb
151
+ - lib/capistrano/ops/wkhtmltopdf.rb
150
152
  homepage: https://github.com/zauberware/capistrano-ops
151
153
  licenses:
152
154
  - MIT