Sha256: 04b5a1030b6faf8834eb333cbf31baba8755cb997038f9dbad3958ad03e8c00b

Contents?: true

Size: 1.77 KB

Versions: 2

Compression:

Stored size: 1.77 KB

Contents

#!/usr/bin/ruby

require 'big_keeper/util/podfile_operator'
require 'big_keeper/util/logger'
require 'big_keeper/util/pod_operator'
require 'big_keeper/util/xcode_operator'
require 'big_keeper/util/cache_operator'
require 'big_keeper/util/bigkeeper_parser'

require 'big_keeper/dependency/dep_service'

require 'big_keeper/dependency/dep_type'


module BigKeeper

  def self.finish(path, user, type)
    begin
      # Parse Bigkeeper file
      BigkeeperParser.parse("#{path}/Bigkeeper")

      home_branch_name = GitOperator.new.current_branch(path)
      branch_name = ModuleCacheOperator.new(path).branch_name
      Logger.error("Not a #{GitflowType.name(type)} branch, exit.") unless branch_name.include? GitflowType.name(type)

      # Cache git modules
      if ModuleCacheOperator.new(path).all_path_modules.empty?
        Logger.error("Branch '#{branch_name}' is already finished, exit.")
      end

      ModuleCacheOperator.new(path).cache_git_modules(ModuleCacheOperator.new(path).all_path_modules)

      modules = ModuleCacheOperator.new(path).current_path_modules_path(path)

      #modules = ModuleCacheOperator.new(path).remain_git_modules
      # Rebase modules and modify module as git
      modules.each do |module_name|
        ModuleService.new.finish(path, user, module_name, branch_name, type)
      end

      Logger.highlight("Finish branch '#{branch_name}' for 'Home'")

      # Delete all path modules
      # ModuleCacheOperator.new(path).cache_path_modules([], [], [])

      # Install
      DepService.dep_operator(path, user).install(false)

      # Open home workspace
      DepService.dep_operator(path, user).open

      # Push home changes to remote
      GitService.new.verify_push(path, "finish branch #{home_branch_name}", home_branch_name, 'Home')
    ensure
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
shkeeper-1.0.0 lib/big_keeper/command/feature&hotfix/finish.rb
kookeeper-3.1.2 lib/big_keeper/command/feature&hotfix/finish.rb