Sha256: a1bf34608b0fbd2a09cef8b6e5d7522191c8f7a114fa5f2414050fc8f9232787

Contents?: true

Size: 914 Bytes

Versions: 7

Compression:

Stored size: 914 Bytes

Contents

module Cp8Cli
  class Cleanup
    def initialize(target)
      @target = target
    end

    def run
      Command.title "Cleaning merged story branches for [#{target}]"
      update_remotes
      remove_fully_merged_local_branches
      remove_fully_merged_remote_branches
      Command.success "Deleted branches merged with [#{target}]"
    end

    private

      attr_reader :target

      def update_remotes
        Command.run "git fetch"
        Command.run "git remote prune origin"
      end

      def remove_fully_merged_local_branches
        Command.run "git branch --merged origin/#{target} | grep '#{filter}' | xargs git branch -D"
      end

      def remove_fully_merged_remote_branches
        Command.run "git branch -r --merged origin/#{target} | sed 's/ *origin\\///' | grep '#{filter}' | xargs -I% git push origin :%"
      end

      def filter
        "\\.#{target}\\."
      end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
cp8_cli-4.2.1 lib/cp8_cli/cleanup.rb
cp8_cli-4.2.0 lib/cp8_cli/cleanup.rb
cp8_cli-4.1.3 lib/cp8_cli/cleanup.rb
cp8_cli-4.1.2 lib/cp8_cli/cleanup.rb
cp8_cli-4.1.1 lib/cp8_cli/cleanup.rb
cp8_cli-4.1.0 lib/cp8_cli/cleanup.rb
cp8_cli-4.0.1 lib/cp8_cli/cleanup.rb