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