Sha256: 61706a6d80076bd5657e4b467320db52a5ddc3a6b8cf77fd6f652f9dd0ca5b7c

Contents?: true

Size: 1.22 KB

Versions: 14

Compression:

Stored size: 1.22 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module Git
    module Launcher
      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.to_h do |line|
            x = line.strip.split(/\s+/)
            [x[1], x[0]]
          end
        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
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
avm-git-0.18.0 lib/avm/git/launcher/remote.rb
eac_tools-0.94.0 sub/avm-git/lib/avm/git/launcher/remote.rb
avm-git-0.17.0 lib/avm/git/launcher/remote.rb
eac_tools-0.86.5 sub/avm-git/lib/avm/git/launcher/remote.rb
avm-git-0.16.0 lib/avm/git/launcher/remote.rb
eac_tools-0.86.4 sub/avm-git/lib/avm/git/launcher/remote.rb
eac_tools-0.86.3 sub/avm-git/lib/avm/git/launcher/remote.rb
avm-git-0.15.0 lib/avm/git/launcher/remote.rb
eac_tools-0.86.2 sub/avm-git/lib/avm/git/launcher/remote.rb
eac_tools-0.84.0 sub/avm-git/lib/avm/git/launcher/remote.rb
eac_tools-0.83.0 sub/avm-git/lib/avm/git/launcher/remote.rb
eac_tools-0.82.0 sub/avm-git/lib/avm/git/launcher/remote.rb
avm-git-0.14.0 lib/avm/git/launcher/remote.rb
eac_tools-0.81.0 sub/avm-git/lib/avm/git/launcher/remote.rb