capistrano-git-copy 1.2.0 → 1.2.1
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/capistrano-git-copy.gemspec +1 -1
 - data/lib/capistrano/git_copy/utility.rb +26 -21
 - data/lib/capistrano/git_copy/version.rb +1 -1
 - data/vendor/git-archive-all/git_archive_all.py +12 -6
 - metadata +5 -6
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 0c1bd7f1f0427e2237d05ec40bfd2b04c263cc1d
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: a04f09b5de4cf6fc31191910d20aa0809e0fe851
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: ace9a0e03014d24d19e691725adb5a068701eb1fd074d19d47d08cdf7af1d6d0e195e06c64f813c9d80c640a661046a79e4e7c8042c33714b99393a1c6e6c08a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: fa69a38fec6225118f9cbf35e7b38d5325802ba7506896e3991aadaf9b4abeb94991347eda42947158cf28f10bbe7f12b88fec4fe164ace0447a9f91e2959eea
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -1,5 +1,10 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # Change Log
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
      
 3 
     | 
    
         
            +
            ## 1.2.1 (2016-12-11)
         
     | 
| 
      
 4 
     | 
    
         
            +
            ### Changes
         
     | 
| 
      
 5 
     | 
    
         
            +
              - updated _git-archive-all_ to HEAD
         
     | 
| 
      
 6 
     | 
    
         
            +
              - require _capistrano_ < 3.7.0 due to breaking changes
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       3 
8 
     | 
    
         
             
            ## 1.2.0 (2016-01-25)
         
     | 
| 
       4 
9 
     | 
    
         
             
            ### Changes
         
     | 
| 
       5 
10 
     | 
    
         
             
              - Check if local repository mirror is working and reinitialize if necessary
         
     | 
    
        data/capistrano-git-copy.gemspec
    CHANGED
    
    | 
         @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       18 
18 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       19 
19 
     | 
    
         
             
              spec.require_paths = ['lib']
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
              spec.add_dependency 'capistrano', '>= 3.1.0', '<  
     | 
| 
      
 21 
     | 
    
         
            +
              spec.add_dependency 'capistrano', '>= 3.1.0', '< 3.7.0'
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
23 
     | 
    
         
             
              spec.add_development_dependency 'bundler', '~> 1.3'
         
     | 
| 
       24 
24 
     | 
    
         
             
              spec.add_development_dependency 'rake'
         
     | 
| 
         @@ -11,6 +11,8 @@ module Capistrano 
     | 
|
| 
       11 
11 
     | 
    
         
             
                  def initialize(context)
         
     | 
| 
       12 
12 
     | 
    
         
             
                    @context         = context
         
     | 
| 
       13 
13 
     | 
    
         
             
                    @with_submodules = fetch(:with_submodules, true)
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @repo_tree = fetch(:repo_tree, false)
         
     | 
| 
      
 15 
     | 
    
         
            +
                    @with_submodules = @repo_tree? false : @with_submodules # If repo_tree is specified, set with_submodules to false
         
     | 
| 
       14 
16 
     | 
    
         
             
                    @git_excludes    = fetch(:git_excludes, [])
         
     | 
| 
       15 
17 
     | 
    
         
             
                  end
         
     | 
| 
       16 
18 
     | 
    
         | 
| 
         @@ -73,32 +75,14 @@ module Capistrano 
     | 
|
| 
       73 
75 
     | 
    
         
             
                  #
         
     | 
| 
       74 
76 
     | 
    
         
             
                  # @return void
         
     | 
| 
       75 
77 
     | 
    
         
             
                  def prepare_release
         
     | 
| 
      
 78 
     | 
    
         
            +
                    target = @repo_tree? "HEAD:#{@repo_tree}" : 'HEAD'
         
     | 
| 
       76 
79 
     | 
    
         
             
                    if with_submodules
         
     | 
| 
       77 
80 
     | 
    
         
             
                      execute(git_archive_all_bin, "--prefix=''", archive_path)
         
     | 
| 
       78 
81 
     | 
    
         
             
                    else
         
     | 
| 
       79 
     | 
    
         
            -
                      git(:archive, '--format=tar',  
     | 
| 
      
 82 
     | 
    
         
            +
                      git(:archive, '--format=tar', target, '|', 'gzip', "> #{archive_path}")
         
     | 
| 
       80 
83 
     | 
    
         
             
                    end
         
     | 
| 
       81 
84 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
                    if git_excludes.count > 0
         
     | 
| 
       83 
     | 
    
         
            -
                      archive_dir = File.join(tmp_path, 'archive')
         
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
                      execute :rm, '-rf', archive_dir
         
     | 
| 
       86 
     | 
    
         
            -
                      execute :mkdir, '-p', archive_dir
         
     | 
| 
       87 
     | 
    
         
            -
                      execute :tar, '-xzf', archive_path, '-C', archive_dir
         
     | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
                      git_excludes.each do |f|
         
     | 
| 
       90 
     | 
    
         
            -
                        file_path = File.join(archive_dir, f.gsub(/\A\//, ''))
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
                        unless File.exists?(file_path)
         
     | 
| 
       93 
     | 
    
         
            -
                          warn("#{f} does not exists!")
         
     | 
| 
       94 
     | 
    
         
            -
                          next
         
     | 
| 
       95 
     | 
    
         
            -
                        end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                        FileUtils.rm_rf(file_path)
         
     | 
| 
       98 
     | 
    
         
            -
                      end
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
                      execute :tar, '-czf', archive_path, '-C', archive_dir, '.'
         
     | 
| 
       101 
     | 
    
         
            -
                    end
         
     | 
| 
      
 85 
     | 
    
         
            +
                    exclude_files_from_archive if git_excludes.count > 0
         
     | 
| 
       102 
86 
     | 
    
         
             
                  end
         
     | 
| 
       103 
87 
     | 
    
         | 
| 
       104 
88 
     | 
    
         
             
                  # Upload and extract release
         
     | 
| 
         @@ -210,5 +194,26 @@ module Capistrano 
     | 
|
| 
       210 
194 
     | 
    
         
             
                    end
         
     | 
| 
       211 
195 
     | 
    
         
             
                  end
         
     | 
| 
       212 
196 
     | 
    
         
             
                end
         
     | 
| 
      
 197 
     | 
    
         
            +
             
     | 
| 
      
 198 
     | 
    
         
            +
                def exclude_files_from_archive
         
     | 
| 
      
 199 
     | 
    
         
            +
                  archive_dir = File.join(tmp_path, 'archive')
         
     | 
| 
      
 200 
     | 
    
         
            +
             
     | 
| 
      
 201 
     | 
    
         
            +
                  execute :rm, '-rf', archive_dir
         
     | 
| 
      
 202 
     | 
    
         
            +
                  execute :mkdir, '-p', archive_dir
         
     | 
| 
      
 203 
     | 
    
         
            +
                  execute :tar, '-xzf', archive_path, '-C', archive_dir
         
     | 
| 
      
 204 
     | 
    
         
            +
             
     | 
| 
      
 205 
     | 
    
         
            +
                  git_excludes.each do |f|
         
     | 
| 
      
 206 
     | 
    
         
            +
                    file_path = File.join(archive_dir, f.gsub(/\A\//, ''))
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
                    unless File.exists?(file_path)
         
     | 
| 
      
 209 
     | 
    
         
            +
                      warn("#{f} does not exists!")
         
     | 
| 
      
 210 
     | 
    
         
            +
                      next
         
     | 
| 
      
 211 
     | 
    
         
            +
                    end
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
                    FileUtils.rm_rf(file_path)
         
     | 
| 
      
 214 
     | 
    
         
            +
                  end
         
     | 
| 
      
 215 
     | 
    
         
            +
             
     | 
| 
      
 216 
     | 
    
         
            +
                  execute :tar, '-czf', archive_path, '-C', archive_dir, '.'
         
     | 
| 
      
 217 
     | 
    
         
            +
                end
         
     | 
| 
       213 
218 
     | 
    
         
             
              end
         
     | 
| 
       214 
219 
     | 
    
         
             
            end
         
     | 
| 
         @@ -32,6 +32,7 @@ from subprocess import CalledProcessError, Popen, PIPE 
     | 
|
| 
       32 
32 
     | 
    
         
             
            import sys
         
     | 
| 
       33 
33 
     | 
    
         
             
            import tarfile
         
     | 
| 
       34 
34 
     | 
    
         
             
            from zipfile import ZipFile, ZipInfo, ZIP_DEFLATED
         
     | 
| 
      
 35 
     | 
    
         
            +
            import re
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
37 
     | 
    
         
             
            __version__ = "1.13"
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
         @@ -84,7 +85,7 @@ class GitArchiver(object): 
     | 
|
| 
       84 
85 
     | 
    
         
             
                        raise ValueError("You MUST pass absolute path to the main git repository.")
         
     | 
| 
       85 
86 
     | 
    
         | 
| 
       86 
87 
     | 
    
         
             
                    try:
         
     | 
| 
       87 
     | 
    
         
            -
                         
     | 
| 
      
 88 
     | 
    
         
            +
                        path.isdir(".git") or self.run_shell("git rev-parse --git-dir > /dev/null 2>&1", main_repo_abspath)
         
     | 
| 
       88 
89 
     | 
    
         
             
                    except Exception as e:
         
     | 
| 
       89 
90 
     | 
    
         
             
                        raise ValueError("{0} not a git repository (or any of the parent directories).".format(main_repo_abspath))
         
     | 
| 
       90 
91 
     | 
    
         | 
| 
         @@ -320,11 +321,16 @@ class GitArchiver(object): 
     | 
|
| 
       320 
321 
     | 
    
         
             
                        self.run_shell("git submodule init", repo_abspath)
         
     | 
| 
       321 
322 
     | 
    
         
             
                        self.run_shell("git submodule update", repo_abspath)
         
     | 
| 
       322 
323 
     | 
    
         | 
| 
       323 
     | 
    
         
            -
                     
     | 
| 
       324 
     | 
    
         
            -
             
     | 
| 
       325 
     | 
    
         
            -
                         
     | 
| 
       326 
     | 
    
         
            -
             
     | 
| 
       327 
     | 
    
         
            -
             
     | 
| 
      
 324 
     | 
    
         
            +
                    gitmodulesfile = path.join(repo_path, ".gitmodules")
         
     | 
| 
      
 325 
     | 
    
         
            +
                    if path.isfile(gitmodulesfile):
         
     | 
| 
      
 326 
     | 
    
         
            +
                        with open(gitmodulesfile) as f:
         
     | 
| 
      
 327 
     | 
    
         
            +
                            for line in f.readlines():
         
     | 
| 
      
 328 
     | 
    
         
            +
                                m = re.match("^\s*path\s*=\s*(.*)\s*$", line)
         
     | 
| 
      
 329 
     | 
    
         
            +
                                if m:
         
     | 
| 
      
 330 
     | 
    
         
            +
                                    submodule_path = m.group(1)
         
     | 
| 
      
 331 
     | 
    
         
            +
                                    submodule_path = path.join(repo_path, submodule_path)
         
     | 
| 
      
 332 
     | 
    
         
            +
                                    for file_path in self.walk_git_files(submodule_path):
         
     | 
| 
      
 333 
     | 
    
         
            +
                                        yield file_path
         
     | 
| 
       328 
334 
     | 
    
         | 
| 
       329 
335 
     | 
    
         
             
                @staticmethod
         
     | 
| 
       330 
336 
     | 
    
         
             
                def get_path_components(repo_abspath, abspath):
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: capistrano-git-copy
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.2.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Florian Schwab
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2016- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2016-12-11 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: capistrano
         
     | 
| 
         @@ -19,7 +19,7 @@ dependencies: 
     | 
|
| 
       19 
19 
     | 
    
         
             
                    version: 3.1.0
         
     | 
| 
       20 
20 
     | 
    
         
             
                - - "<"
         
     | 
| 
       21 
21 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
     | 
    
         
            -
                    version:  
     | 
| 
      
 22 
     | 
    
         
            +
                    version: 3.7.0
         
     | 
| 
       23 
23 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       24 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       25 
25 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -29,7 +29,7 @@ dependencies: 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    version: 3.1.0
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - "<"
         
     | 
| 
       31 
31 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       32 
     | 
    
         
            -
                    version:  
     | 
| 
      
 32 
     | 
    
         
            +
                    version: 3.7.0
         
     | 
| 
       33 
33 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       34 
34 
     | 
    
         
             
              name: bundler
         
     | 
| 
       35 
35 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -114,9 +114,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       114 
114 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       115 
115 
     | 
    
         
             
            requirements: []
         
     | 
| 
       116 
116 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       117 
     | 
    
         
            -
            rubygems_version: 2.5. 
     | 
| 
      
 117 
     | 
    
         
            +
            rubygems_version: 2.5.2
         
     | 
| 
       118 
118 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       119 
119 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       120 
120 
     | 
    
         
             
            summary: Copy local git repository deploy strategy for capistrano
         
     | 
| 
       121 
121 
     | 
    
         
             
            test_files: []
         
     | 
| 
       122 
     | 
    
         
            -
            has_rdoc: 
         
     |