Sha256: 28a82455d9f4f1e9c63d1e92843b8364fa9d950dfeec667102c0ade94d6b4fd0

Contents?: true

Size: 1.13 KB

Versions: 84

Compression:

Stored size: 1.13 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module EacLauncher
  module Git
    class Remote
      common_constructor :git, :name

      def exist?
        git.execute!('remote').each_line.any? { |line| line.strip == name }
      end

      def ls
        git.execute!(['ls-remote', name]).each_line.map do |line|
          x = line.strip.split(/\s+/)
          [x[1], x[0]]
        end.to_h
      end

      # +git remote add ...+
      def add(url)
        git.execute!('remote', 'add', name, url)
      end

      # +git remote rm ...+
      def remove
        git.execute!('remote', 'rm', name)
      end

      # +git remote get-url ...+
      def url
        git.execute!('remote', 'get-url', name).strip.if_present(nil)
      end

      # git remote set-url ...
      def url_set(url)
        git.execute!('remote', 'set-url', name, url)
      end

      # Add or set URL if +url+ is present, remove remote if is blank.
      def url=(url)
        if exist? && url.blank?
          remove
        elsif exist? && self.url != url
          url_set(url)
        elsif !exist?
          add(url)
        end
      end
    end
  end
end

Version data entries

84 entries across 84 versions & 2 rubygems

Version Path
avm-tools-0.99.0 lib/eac_launcher/git/remote.rb
avm-tools-0.98.0 lib/eac_launcher/git/remote.rb
avm-tools-0.97.0 lib/eac_launcher/git/remote.rb
avm-tools-0.96.0 lib/eac_launcher/git/remote.rb
avm-tools-0.95.0 lib/eac_launcher/git/remote.rb
avm-tools-0.94.3 lib/eac_launcher/git/remote.rb
avm-tools-0.94.2 lib/eac_launcher/git/remote.rb
avm-tools-0.94.1 lib/eac_launcher/git/remote.rb
avm-tools-0.94.0 lib/eac_launcher/git/remote.rb
avm-tools-0.93.0 lib/eac_launcher/git/remote.rb
avm-tools-0.92.0 lib/eac_launcher/git/remote.rb
avm-tools-0.91.0 lib/eac_launcher/git/remote.rb
avm-tools-0.90.0 lib/eac_launcher/git/remote.rb
avm-tools-0.89.0 lib/eac_launcher/git/remote.rb
avm-tools-0.88.0 lib/eac_launcher/git/remote.rb
avm-tools-0.87.1 lib/eac_launcher/git/remote.rb
avm-tools-0.87.0 lib/eac_launcher/git/remote.rb
avm-tools-0.86.0 lib/eac_launcher/git/remote.rb
avm-tools-0.85.1 lib/eac_launcher/git/remote.rb
avm-tools-0.85.0 lib/eac_launcher/git/remote.rb