lib/capistrano/tasks/middleman.rake in capistrano-middleman-0.1.0 vs lib/capistrano/tasks/middleman.rake in capistrano-middleman-0.1.3
- old
+ new
@@ -1,9 +1,11 @@
+require 'securerandom'
namespace :middleman do
middleman_options = Array(fetch(:middleman_options, %w(--verbose)))
- archive_name = fetch :archive_name, 'archive.zip'
+ archive_prefix = fetch :archive_prefix, 'archive'
+ archive_name = format('%s-%s.zip', archive_prefix, SecureRandom.hex)
build_dir = fetch :build_dir, 'build'
source_dir = fetch :source_dir, 'source'
keep_filesystem_permissions = fetch :keep_filesystem_permissions, false
directory_permissions = fetch :directory_permissions, 2775
file_permissions = fetch :file_permissions, 0664
@@ -11,23 +13,23 @@
exclude_patterns = Array(fetch(:exclude_patterns))
tar_roles = fetch(:tar_roles, :all)
desc "Archive files to #{archive_name}"
file archive_name => source_dir do |t|
- cmd = %w(middleman build)
- cmd.concat middleman_options
- sh cmd.join(' ')
+ run_locally do
+ execute :middleman, 'build', *middleman_options
- Capistrano::Middleman::Utils.zip(
- build_dir,
- t.name,
- working_directory: build_dir,
- exclude_patterns: exclude_patterns,
- keep_filesystem_permissions: keep_filesystem_permissions,
- directory_permissions: directory_permissions,
- file_permissions: file_permissions
- )
+ Capistrano::Middleman::Utils.zip(
+ build_dir,
+ t.name,
+ working_directory: build_dir,
+ exclude_patterns: exclude_patterns,
+ keep_filesystem_permissions: keep_filesystem_permissions,
+ directory_permissions: directory_permissions,
+ file_permissions: file_permissions
+ )
+ end
end
desc "Build #{archive_name} on localhost"
task build: archive_name do
run_locally do
@@ -48,24 +50,25 @@
tmp_file = capture('mktemp')
# Upload the archive, extract it and finally remove the tmp_file
upload!(archive_file, tmp_file)
- umask = capture('umask')
- debug "umask on remote system #{host} is #{umask}"
+ # umask = capture('umask')
+ # debug "umask on remote system #{host} is #{umask}"
execute :unzip, tmp_file, '-d', release_path
execute :rm, '-f', tmp_file
end
end
desc 'Cleaning up deploy'
task :clean do |_t|
FileUtils.rm_rf build_dir
- FileUtils.rm_rf archive_name
+ FileUtils.rm_rf format('%s-%s.zip', archive_prefix, '*')
end
after 'deploy:finished', 'middleman:clean'
task :check
task :set_current_revision
end
+