Sha256: c4a9e8494af024f3b02f82a48e1d11b2f5679606f79b7eb5d98218cf65979721

Contents?: true

Size: 975 Bytes

Versions: 1

Compression:

Stored size: 975 Bytes

Contents

module Cp8Cli
  module Commands
    class Cleanup
      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

        def target
          @_target ||= Branch.current.target
        end

        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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cp8_cli-5.0.0 lib/cp8_cli/commands/cleanup.rb