autobuild 1.10.0.b2 → 1.10.0.b3
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/lib/autobuild/config.rb +5 -2
 - data/lib/autobuild/import/git.rb +114 -6
 - data/lib/autobuild/importer.rb +9 -0
 - data/lib/autobuild/reporting.rb +2 -1
 - data/lib/autobuild/subcommand.rb +5 -6
 - data/lib/autobuild/version.rb +1 -1
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 28218a1fe204bc6efd9ae8a5ca2635067dd1aa8f
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: dc5ea70ceb40b5798c5cbcfdbc53000dc1b0507d
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: a43bb95fbd578877a7559ea37323bdfaedc0a3197bf47a3b283667eb99b3c83d8079bdd4a2627c03ade5802a475e140c93bdf5aadcc075d8f42cb0fec3689c1d
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: b18e69dfe1aa5373a538d277ba30f455c94555b6de1c8a2335216545f0b37d8761920d1bd454bc9148f8ffed335aaf23e7e4225215ca2073fbbf2a24d770587c
         
     | 
    
        data/lib/autobuild/config.rb
    CHANGED
    
    | 
         @@ -275,7 +275,10 @@ module Autobuild 
     | 
|
| 
       275 
275 
     | 
    
         
             
                        utilities.keys
         
     | 
| 
       276 
276 
     | 
    
         
             
                end
         
     | 
| 
       277 
277 
     | 
    
         | 
| 
       278 
     | 
    
         
            -
                def self.apply(packages, buildname = "autobuild", phases = [])
         
     | 
| 
      
 278 
     | 
    
         
            +
                def self.apply(packages, buildname = "autobuild", phases = [], options = Hash.new)
         
     | 
| 
      
 279 
     | 
    
         
            +
                    options = Kernel.validate_options options,
         
     | 
| 
      
 280 
     | 
    
         
            +
                        parallel: Autobuild.parallel_build_level
         
     | 
| 
      
 281 
     | 
    
         
            +
             
     | 
| 
       279 
282 
     | 
    
         
             
                    if Autobuild.mail[:to]
         
     | 
| 
       280 
283 
     | 
    
         
             
                        if !Autobuild::HAS_RMAIL
         
     | 
| 
       281 
284 
     | 
    
         
             
                            Autobuild.warn "RMail is not available. Mail notification is disabled"
         
     | 
| 
         @@ -322,7 +325,7 @@ module Autobuild 
     | 
|
| 
       322 
325 
     | 
    
         
             
                    end
         
     | 
| 
       323 
326 
     | 
    
         | 
| 
       324 
327 
     | 
    
         
             
                    begin
         
     | 
| 
       325 
     | 
    
         
            -
                        invoker = Autobuild::RakeTaskParallelism.new
         
     | 
| 
      
 328 
     | 
    
         
            +
                        invoker = Autobuild::RakeTaskParallelism.new(options[:parallel])
         
     | 
| 
       326 
329 
     | 
    
         
             
                        Autobuild.parallel_task_manager = invoker
         
     | 
| 
       327 
330 
     | 
    
         
             
                        phases.each do |phase|
         
     | 
| 
       328 
331 
     | 
    
         
             
                            invoker.invoke_parallel([Rake::Task["#{buildname}-#{phase}"]])
         
     | 
    
        data/lib/autobuild/import/git.rb
    CHANGED
    
    | 
         @@ -364,11 +364,37 @@ module Autobuild 
     | 
|
| 
       364 
364 
     | 
    
         
             
                        end
         
     | 
| 
       365 
365 
     | 
    
         
             
                    end
         
     | 
| 
       366 
366 
     | 
    
         | 
| 
      
 367 
     | 
    
         
            +
                    # Resolve a commit ref to a tag or commit ID
         
     | 
| 
      
 368 
     | 
    
         
            +
                    def describe_rev(package, rev)
         
     | 
| 
      
 369 
     | 
    
         
            +
                        tag = run_git_bare(package, 'describe', '--tags', '--exact-match', rev).first.strip
         
     | 
| 
      
 370 
     | 
    
         
            +
                        return true, tag.encode('UTF-8')
         
     | 
| 
      
 371 
     | 
    
         
            +
                    rescue Autobuild::SubcommandFailed
         
     | 
| 
      
 372 
     | 
    
         
            +
                        commit = rev_parse(package, rev)
         
     | 
| 
      
 373 
     | 
    
         
            +
                        return false, commit.encode('UTF-8')
         
     | 
| 
      
 374 
     | 
    
         
            +
                    end
         
     | 
| 
      
 375 
     | 
    
         
            +
             
     | 
| 
      
 376 
     | 
    
         
            +
                    # Enumerates the ref that are present on the remote
         
     | 
| 
      
 377 
     | 
    
         
            +
                    #
         
     | 
| 
      
 378 
     | 
    
         
            +
                    # @yieldparam [String] ref_name the ref name
         
     | 
| 
      
 379 
     | 
    
         
            +
                    # @yieldparam [String] commit_id the ref's commit ID
         
     | 
| 
      
 380 
     | 
    
         
            +
                    def each_remote_ref(package)
         
     | 
| 
      
 381 
     | 
    
         
            +
                        return enum_for(__method__, package) if !block_given?
         
     | 
| 
      
 382 
     | 
    
         
            +
                        run_git_bare(package, 'ls-remote', repository).each do |line|
         
     | 
| 
      
 383 
     | 
    
         
            +
                            commit_id, ref_name = line.split(/\s+/)
         
     | 
| 
      
 384 
     | 
    
         
            +
                            if ref_name !~ /\^/
         
     | 
| 
      
 385 
     | 
    
         
            +
                                yield(ref_name, commit_id)
         
     | 
| 
      
 386 
     | 
    
         
            +
                            end
         
     | 
| 
      
 387 
     | 
    
         
            +
                        end
         
     | 
| 
      
 388 
     | 
    
         
            +
                    end
         
     | 
| 
      
 389 
     | 
    
         
            +
             
     | 
| 
       367 
390 
     | 
    
         
             
                    # Fetches updates from the remote repository. Returns the remote commit
         
     | 
| 
       368 
391 
     | 
    
         
             
                    # ID on success, nil on failure. Expects the current directory to be the
         
     | 
| 
       369 
392 
     | 
    
         
             
                    # package's source directory.
         
     | 
| 
       370 
     | 
    
         
            -
                    def fetch_remote(package)
         
     | 
| 
      
 393 
     | 
    
         
            +
                    def fetch_remote(package, options = Hash.new)
         
     | 
| 
       371 
394 
     | 
    
         
             
                        validate_importdir(package)
         
     | 
| 
      
 395 
     | 
    
         
            +
                        options = Kernel.validate_options options,
         
     | 
| 
      
 396 
     | 
    
         
            +
                            refspec: remote_branch || tag
         
     | 
| 
      
 397 
     | 
    
         
            +
             
     | 
| 
       372 
398 
     | 
    
         
             
                        git_dir = git_dir(package, false)
         
     | 
| 
       373 
399 
     | 
    
         | 
| 
       374 
400 
     | 
    
         
             
                        # If we are checking out a specific commit, we don't know which
         
     | 
| 
         @@ -381,7 +407,7 @@ module Autobuild 
     | 
|
| 
       381 
407 
     | 
    
         
             
                        # Doing it now is better as it makes sure that we replace the
         
     | 
| 
       382 
408 
     | 
    
         
             
                        # configuration parameters only if the repository and branch are
         
     | 
| 
       383 
409 
     | 
    
         
             
                        # OK (i.e. we keep old working configuration instead)
         
     | 
| 
       384 
     | 
    
         
            -
                        refspec = [ 
     | 
| 
      
 410 
     | 
    
         
            +
                        refspec = Array(options[:refspec])
         
     | 
| 
       385 
411 
     | 
    
         
             
                        run_git_bare(package, 'fetch', '--tags', repository, *refspec, retry: true)
         
     | 
| 
       386 
412 
     | 
    
         | 
| 
       387 
413 
     | 
    
         
             
                        update_remotes_configuration(package)
         
     | 
| 
         @@ -397,7 +423,7 @@ module Autobuild 
     | 
|
| 
       397 
423 
     | 
    
         
             
                        end
         
     | 
| 
       398 
424 
     | 
    
         | 
| 
       399 
425 
     | 
    
         
             
                        # Update the remote tag if needs be
         
     | 
| 
       400 
     | 
    
         
            -
                        if  
     | 
| 
      
 426 
     | 
    
         
            +
                        if remote_branch && commit_id
         
     | 
| 
       401 
427 
     | 
    
         
             
                            run_git_bare(package, 'update-ref', "-m", "updated by autobuild", "refs/remotes/#{remote_name}/#{remote_branch}", commit_id)
         
     | 
| 
       402 
428 
     | 
    
         
             
                        end
         
     | 
| 
       403 
429 
     | 
    
         | 
| 
         @@ -445,6 +471,13 @@ module Autobuild 
     | 
|
| 
       445 
471 
     | 
    
         
             
                        remote_commit = current_remote_commit(package, only_local)
         
     | 
| 
       446 
472 
     | 
    
         
             
                        status = merge_status(package, remote_commit)
         
     | 
| 
       447 
473 
     | 
    
         
             
                        status.uncommitted_code = self.class.has_uncommitted_changes?(package)
         
     | 
| 
      
 474 
     | 
    
         
            +
                        if current_branch = self.current_branch(package)
         
     | 
| 
      
 475 
     | 
    
         
            +
                            if current_branch != "refs/heads/#{local_branch}"
         
     | 
| 
      
 476 
     | 
    
         
            +
                                status.unexpected_working_copy_state << "working copy is on branch #{current_branch}, the autoproj configuration expected it to be on #{local_branch}"
         
     | 
| 
      
 477 
     | 
    
         
            +
                            end
         
     | 
| 
      
 478 
     | 
    
         
            +
                        else
         
     | 
| 
      
 479 
     | 
    
         
            +
                            status.unexpected_working_copy_state << "working copy is on a detached HEAD"
         
     | 
| 
      
 480 
     | 
    
         
            +
                        end
         
     | 
| 
       448 
481 
     | 
    
         
             
                        status
         
     | 
| 
       449 
482 
     | 
    
         
             
                    end
         
     | 
| 
       450 
483 
     | 
    
         | 
| 
         @@ -553,7 +586,7 @@ module Autobuild 
     | 
|
| 
       553 
586 
     | 
    
         
             
                    # Tests whether a commit is already present in a given history
         
     | 
| 
       554 
587 
     | 
    
         
             
                    #
         
     | 
| 
       555 
588 
     | 
    
         
             
                    # @param [Package] the package we are working on
         
     | 
| 
       556 
     | 
    
         
            -
                    # @param [String]  
     | 
| 
      
 589 
     | 
    
         
            +
                    # @param [String] rev what we want to verify the presence of
         
     | 
| 
       557 
590 
     | 
    
         
             
                    # @param [String] reference the reference commit. The method tests that
         
     | 
| 
       558 
591 
     | 
    
         
             
                    #   'commit' is present in the history of 'reference'
         
     | 
| 
       559 
592 
     | 
    
         
             
                    #
         
     | 
| 
         @@ -569,6 +602,71 @@ module Autobuild 
     | 
|
| 
       569 
602 
     | 
    
         
             
                        end
         
     | 
| 
       570 
603 
     | 
    
         
             
                    end
         
     | 
| 
       571 
604 
     | 
    
         | 
| 
      
 605 
     | 
    
         
            +
                    # Finds a remote reference that contains a commit
         
     | 
| 
      
 606 
     | 
    
         
            +
                    #
         
     | 
| 
      
 607 
     | 
    
         
            +
                    # It will favor the configured {#remote_branch} if it matches
         
     | 
| 
      
 608 
     | 
    
         
            +
                    #
         
     | 
| 
      
 609 
     | 
    
         
            +
                    # @param [Autobuild::Package] package the package we are working on
         
     | 
| 
      
 610 
     | 
    
         
            +
                    # @param [String] commit_id the commit ID (can be a rev)
         
     | 
| 
      
 611 
     | 
    
         
            +
                    # @return [String] a remote ref
         
     | 
| 
      
 612 
     | 
    
         
            +
                    # @raise [PackageException] if there is no such commit on the remote
         
     | 
| 
      
 613 
     | 
    
         
            +
                    def describe_commit_on_remote(package, rev = 'HEAD', options = Hash.new)
         
     | 
| 
      
 614 
     | 
    
         
            +
                        rev = rev.to_str
         
     | 
| 
      
 615 
     | 
    
         
            +
                        options = Kernel.validate_options options,
         
     | 
| 
      
 616 
     | 
    
         
            +
                            tags: true
         
     | 
| 
      
 617 
     | 
    
         
            +
             
     | 
| 
      
 618 
     | 
    
         
            +
                        commit_id = rev_parse(package, rev)
         
     | 
| 
      
 619 
     | 
    
         
            +
             
     | 
| 
      
 620 
     | 
    
         
            +
                        remote_refs = Hash[*each_remote_ref(package).to_a.flatten]
         
     | 
| 
      
 621 
     | 
    
         
            +
                        remote_branch_ref = "refs/heads/#{remote_branch}"
         
     | 
| 
      
 622 
     | 
    
         
            +
                        remote_branch_id = remote_refs.delete(remote_branch_ref)
         
     | 
| 
      
 623 
     | 
    
         
            +
                        begin
         
     | 
| 
      
 624 
     | 
    
         
            +
                            if commit_present_in?(package, commit_id, remote_branch_id)
         
     | 
| 
      
 625 
     | 
    
         
            +
                                return remote_branch
         
     | 
| 
      
 626 
     | 
    
         
            +
                            end
         
     | 
| 
      
 627 
     | 
    
         
            +
                        rescue PackageException # We have to fetch. Fetch all branches at once
         
     | 
| 
      
 628 
     | 
    
         
            +
                            fetch_remote(package, refspec: [remote_branch_ref, *remote_refs.keys])
         
     | 
| 
      
 629 
     | 
    
         
            +
                            if commit_present_in?(package, commit_id, remote_branch_id)
         
     | 
| 
      
 630 
     | 
    
         
            +
                                return remote_branch
         
     | 
| 
      
 631 
     | 
    
         
            +
                            end
         
     | 
| 
      
 632 
     | 
    
         
            +
                        end
         
     | 
| 
      
 633 
     | 
    
         
            +
             
     | 
| 
      
 634 
     | 
    
         
            +
                        if !options[:tags]
         
     | 
| 
      
 635 
     | 
    
         
            +
                            remote_refs.delete_if { |r| r =~ /^refs\/tags\// }
         
     | 
| 
      
 636 
     | 
    
         
            +
                        end
         
     | 
| 
      
 637 
     | 
    
         
            +
             
     | 
| 
      
 638 
     | 
    
         
            +
                        # Prefer tags, then heads, then the rest (e.g. github pull requests)
         
     | 
| 
      
 639 
     | 
    
         
            +
                        remote_refs = remote_refs.sort_by do |rev_name, rev_id|
         
     | 
| 
      
 640 
     | 
    
         
            +
                            case rev_name
         
     | 
| 
      
 641 
     | 
    
         
            +
                            when /^refs\/tags\// then 0
         
     | 
| 
      
 642 
     | 
    
         
            +
                            when /^refs\/heads\// then 1
         
     | 
| 
      
 643 
     | 
    
         
            +
                            else 2
         
     | 
| 
      
 644 
     | 
    
         
            +
                            end
         
     | 
| 
      
 645 
     | 
    
         
            +
                        end
         
     | 
| 
      
 646 
     | 
    
         
            +
             
     | 
| 
      
 647 
     | 
    
         
            +
                        remote_refs.delete_if do |rev_name, rev_id|
         
     | 
| 
      
 648 
     | 
    
         
            +
                            begin
         
     | 
| 
      
 649 
     | 
    
         
            +
                                if commit_present_in?(package, commit_id, rev_id)
         
     | 
| 
      
 650 
     | 
    
         
            +
                                    return rev_name
         
     | 
| 
      
 651 
     | 
    
         
            +
                                end
         
     | 
| 
      
 652 
     | 
    
         
            +
                                true
         
     | 
| 
      
 653 
     | 
    
         
            +
                            rescue PackageException
         
     | 
| 
      
 654 
     | 
    
         
            +
                                false
         
     | 
| 
      
 655 
     | 
    
         
            +
                            end
         
     | 
| 
      
 656 
     | 
    
         
            +
                        end
         
     | 
| 
      
 657 
     | 
    
         
            +
             
     | 
| 
      
 658 
     | 
    
         
            +
                        if !remote_refs.empty?
         
     | 
| 
      
 659 
     | 
    
         
            +
                            fetch_remote(package, refspec: remote_refs.map(&:first))
         
     | 
| 
      
 660 
     | 
    
         
            +
                            remote_refs.each do |rev_name, rev_id|
         
     | 
| 
      
 661 
     | 
    
         
            +
                                if commit_present_in?(package, commit_id, rev_id)
         
     | 
| 
      
 662 
     | 
    
         
            +
                                    return rev_name
         
     | 
| 
      
 663 
     | 
    
         
            +
                                end
         
     | 
| 
      
 664 
     | 
    
         
            +
                            end
         
     | 
| 
      
 665 
     | 
    
         
            +
                        end
         
     | 
| 
      
 666 
     | 
    
         
            +
             
     | 
| 
      
 667 
     | 
    
         
            +
                        raise PackageException.new(package), "current HEAD (#{commit_id}) does not seem to be present on the remote"
         
     | 
| 
      
 668 
     | 
    
         
            +
                    end
         
     | 
| 
      
 669 
     | 
    
         
            +
             
     | 
| 
       572 
670 
     | 
    
         
             
                    # Computes the update status to update a branch whose tip is at
         
     | 
| 
       573 
671 
     | 
    
         
             
                    # reference_commit (which can be a symbolic reference) using the
         
     | 
| 
       574 
672 
     | 
    
         
             
                    # fetch_commit commit
         
     | 
| 
         @@ -798,8 +896,18 @@ module Autobuild 
     | 
|
| 
       798 
896 
     | 
    
         | 
| 
       799 
897 
     | 
    
         
             
                    # Changes the repository this importer is pointing to
         
     | 
| 
       800 
898 
     | 
    
         
             
                    def relocate(repository, options = Hash.new)
         
     | 
| 
      
 899 
     | 
    
         
            +
                        options = Hash[options.map { |k, v| [k.to_sym, v] }]
         
     | 
| 
      
 900 
     | 
    
         
            +
             
     | 
| 
       801 
901 
     | 
    
         
             
                        @push_to = options[:push_to] || @push_to
         
     | 
| 
       802 
     | 
    
         
            -
                        @branch =  
     | 
| 
      
 902 
     | 
    
         
            +
                        @branch = @local_branch = @remote_branch = nil
         
     | 
| 
      
 903 
     | 
    
         
            +
                        local_branch  = options[:local_branch]  || options[:branch] || local_branch || 'master'
         
     | 
| 
      
 904 
     | 
    
         
            +
                        remote_branch = options[:remote_branch] || options[:branch] || remote_branch || 'master'
         
     | 
| 
      
 905 
     | 
    
         
            +
                        if local_branch == remote_branch
         
     | 
| 
      
 906 
     | 
    
         
            +
                            @branch = local_branch
         
     | 
| 
      
 907 
     | 
    
         
            +
                        else
         
     | 
| 
      
 908 
     | 
    
         
            +
                            @local_branch = local_branch
         
     | 
| 
      
 909 
     | 
    
         
            +
                            @remote_branch = remote_branch
         
     | 
| 
      
 910 
     | 
    
         
            +
                        end
         
     | 
| 
       803 
911 
     | 
    
         
             
                        @tag    = options[:tag] || @tag
         
     | 
| 
       804 
912 
     | 
    
         
             
                        @commit = options[:commit] || @commit
         
     | 
| 
       805 
913 
     | 
    
         | 
| 
         @@ -807,7 +915,7 @@ module Autobuild 
     | 
|
| 
       807 
915 
     | 
    
         
             
                        @repository_id = options[:repository_id] ||
         
     | 
| 
       808 
916 
     | 
    
         
             
                            "git:#{@repository}"
         
     | 
| 
       809 
917 
     | 
    
         
             
                        @source_id = options[:source_id] ||
         
     | 
| 
       810 
     | 
    
         
            -
                            "#{@repository_id} branch=#{ 
     | 
| 
      
 918 
     | 
    
         
            +
                            "#{@repository_id} branch=#{remote_branch} tag=#{self.tag} commit=#{self.commit}"
         
     | 
| 
       811 
919 
     | 
    
         
             
                    end
         
     | 
| 
       812 
920 
     | 
    
         | 
| 
       813 
921 
     | 
    
         
             
                    # Tests whether the given directory is a git repository
         
     | 
    
        data/lib/autobuild/importer.rb
    CHANGED
    
    | 
         @@ -45,6 +45,14 @@ class Importer 
     | 
|
| 
       45 
45 
     | 
    
         
             
                    attr_accessor :status
         
     | 
| 
       46 
46 
     | 
    
         
             
                    # True if there is code in the working copy that is not committed
         
     | 
| 
       47 
47 
     | 
    
         
             
                    attr_accessor :uncommitted_code
         
     | 
| 
      
 48 
     | 
    
         
            +
                    # A list of messages describing differences between the local working
         
     | 
| 
      
 49 
     | 
    
         
            +
                    # copy and its expected state
         
     | 
| 
      
 50 
     | 
    
         
            +
                    #
         
     | 
| 
      
 51 
     | 
    
         
            +
                    # On git, it would for instance mention that currently checked out
         
     | 
| 
      
 52 
     | 
    
         
            +
                    # branch is not the one autoproj expects
         
     | 
| 
      
 53 
     | 
    
         
            +
                    #
         
     | 
| 
      
 54 
     | 
    
         
            +
                    # @return [Array<String>]
         
     | 
| 
      
 55 
     | 
    
         
            +
                    attr_reader :unexpected_working_copy_state
         
     | 
| 
       48 
56 
     | 
    
         | 
| 
       49 
57 
     | 
    
         
             
                    # An array of strings that represent commits that are in the remote
         
     | 
| 
       50 
58 
     | 
    
         
             
                    # repository and not in this one (would be merged by an update)
         
     | 
| 
         @@ -55,6 +63,7 @@ class Importer 
     | 
|
| 
       55 
63 
     | 
    
         | 
| 
       56 
64 
     | 
    
         
             
                    def initialize(status = -1)
         
     | 
| 
       57 
65 
     | 
    
         
             
                        @status = status
         
     | 
| 
      
 66 
     | 
    
         
            +
                        @unexpected_working_copy_state = Array.new
         
     | 
| 
       58 
67 
     | 
    
         
             
                        @uncommitted_code = false
         
     | 
| 
       59 
68 
     | 
    
         
             
                        @remote_commits = Array.new
         
     | 
| 
       60 
69 
     | 
    
         
             
                        @local_commits  = Array.new
         
     | 
    
        data/lib/autobuild/reporting.rb
    CHANGED
    
    | 
         @@ -102,11 +102,12 @@ module Autobuild 
     | 
|
| 
       102 
102 
     | 
    
         | 
| 
       103 
103 
     | 
    
         
             
                    if block_given?
         
     | 
| 
       104 
104 
     | 
    
         
             
                        begin
         
     | 
| 
       105 
     | 
    
         
            -
                            yield
         
     | 
| 
      
 105 
     | 
    
         
            +
                            result = yield
         
     | 
| 
       106 
106 
     | 
    
         
             
                            if options[:done_message] && has_progress_for?(key)
         
     | 
| 
       107 
107 
     | 
    
         
             
                                progress(key, *options[:done_message])
         
     | 
| 
       108 
108 
     | 
    
         
             
                            end
         
     | 
| 
       109 
109 
     | 
    
         
             
                            progress_done(key, true)
         
     | 
| 
      
 110 
     | 
    
         
            +
                            result
         
     | 
| 
       110 
111 
     | 
    
         
             
                        rescue Exception
         
     | 
| 
       111 
112 
     | 
    
         
             
                            progress_done(key, false)
         
     | 
| 
       112 
113 
     | 
    
         
             
                            raise
         
     | 
    
        data/lib/autobuild/subcommand.rb
    CHANGED
    
    | 
         @@ -197,14 +197,15 @@ module Autobuild::Subprocess 
     | 
|
| 
       197 
197 
     | 
    
         
             
                    STDOUT.sync = true
         
     | 
| 
       198 
198 
     | 
    
         | 
| 
       199 
199 
     | 
    
         
             
                    input_streams = []
         
     | 
| 
       200 
     | 
    
         
            -
                    options = Hash[retry: false, env: ENV.to_hash, env_inherit: true]
         
     | 
| 
      
 200 
     | 
    
         
            +
                    options = Hash[retry: false, env: ENV.to_hash, env_inherit: true, encoding: 'BINARY']
         
     | 
| 
       201 
201 
     | 
    
         
             
                    if command.last.kind_of?(Hash)
         
     | 
| 
       202 
202 
     | 
    
         
             
                        options = command.pop
         
     | 
| 
       203 
203 
     | 
    
         
             
                        options = Kernel.validate_options options,
         
     | 
| 
       204 
204 
     | 
    
         
             
                            input: nil, working_directory: nil, retry: false,
         
     | 
| 
       205 
205 
     | 
    
         
             
                            input_streams: [],
         
     | 
| 
       206 
206 
     | 
    
         
             
                            env: ENV.to_hash,
         
     | 
| 
       207 
     | 
    
         
            -
                            env_inherit: true
         
     | 
| 
      
 207 
     | 
    
         
            +
                            env_inherit: true,
         
     | 
| 
      
 208 
     | 
    
         
            +
                            encoding: 'BINARY'
         
     | 
| 
       208 
209 
     | 
    
         | 
| 
       209 
210 
     | 
    
         
             
                        if options[:input]
         
     | 
| 
       210 
211 
     | 
    
         
             
                            input_streams << File.open(options[:input])
         
     | 
| 
         @@ -246,9 +247,7 @@ module Autobuild::Subprocess 
     | 
|
| 
       246 
247 
     | 
    
         
             
                                elsif Autobuild.registered_logfile?(logname) then 'a'
         
     | 
| 
       247 
248 
     | 
    
         
             
                                else 'w'
         
     | 
| 
       248 
249 
     | 
    
         
             
                                end
         
     | 
| 
       249 
     | 
    
         
            -
                     
     | 
| 
       250 
     | 
    
         
            -
                        open_flag << ":BINARY"
         
     | 
| 
       251 
     | 
    
         
            -
                    end
         
     | 
| 
      
 250 
     | 
    
         
            +
                    open_flag << ":BINARY"
         
     | 
| 
       252 
251 
     | 
    
         | 
| 
       253 
252 
     | 
    
         
             
                    Autobuild.register_logfile(logname)
         
     | 
| 
       254 
253 
     | 
    
         
             
                    subcommand_output = Array.new
         
     | 
| 
         @@ -385,7 +384,7 @@ module Autobuild::Subprocess 
     | 
|
| 
       385 
384 
     | 
    
         
             
                        # line-by-line.
         
     | 
| 
       386 
385 
     | 
    
         
             
                        outwrite.close
         
     | 
| 
       387 
386 
     | 
    
         
             
                        outread.each_line do |line|
         
     | 
| 
       388 
     | 
    
         
            -
                            line.force_encoding( 
     | 
| 
      
 387 
     | 
    
         
            +
                            line.force_encoding(options[:encoding])
         
     | 
| 
       389 
388 
     | 
    
         
             
                            line = line.chomp
         
     | 
| 
       390 
389 
     | 
    
         
             
                            subcommand_output << line
         
     | 
| 
       391 
390 
     | 
    
         | 
    
        data/lib/autobuild/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: autobuild
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 1.10.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 1.10.0.b3
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Sylvain Joyeux
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-08- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-08-27 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake
         
     |