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