Module: Dapp::Dimg::Dimg::GitArtifact

Included in:
Dapp::Dimg::Dimg
Defined in:
lib/dapp/dimg/dimg/git_artifact.rb

Instance Method Summary collapse

Instance Method Details

#generate_git_artifacts(repo, omit_empty: true, **git_artifact_options) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 28

def generate_git_artifacts(repo, omit_empty: true, **git_artifact_options)
  [].tap do |artifacts|
    artifacts << (artifact = ::Dapp::Dimg::GitArtifact.new(repo, self, ignore_signature_auto_calculation: ignore_signature_auto_calculation, **git_artifact_options))
    if ENV['DAPP_DISABLE_GIT_SUBMODULES']
      artifacts
    else
      artifacts.concat(generate_git_embedded_artifacts(artifact))
    end
  end.select do |artifact|
    !omit_empty || !artifact.empty?
  end
end

#generate_git_embedded_artifacts(artifact) ⇒ Object



41
42
43
44
45
46
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 41

def generate_git_embedded_artifacts(artifact)
  [].tap do |artifacts|
    artifacts.concat(submodules_artifacts = artifact.embedded_artifacts)
    artifacts.concat(submodules_artifacts.map(&method(:generate_git_embedded_artifacts)).flatten)
  end
end

#git_artifacts(omit_empty: true) ⇒ Object



5
6
7
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 5

def git_artifacts(omit_empty: true)
  [*local_git_artifacts(omit_empty: omit_empty), *remote_git_artifacts(omit_empty: omit_empty)].compact
end

#local_git_artifacts(omit_empty: true) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 9

def local_git_artifacts(omit_empty: true)
  @local_git_artifact_list ||= [].tap do |artifacts|
    break artifacts if (local_git_artifacts = Array(config._git_artifact._local)).empty?
    repo = GitRepo::Own.new(dapp)
    local_git_artifacts.map do |ga_config|
      artifacts.concat(generate_git_artifacts(repo, omit_empty: omit_empty, **ga_config._artifact_options))
    end unless repo.empty?
  end
end

#remote_git_artifacts(omit_empty: true) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/dapp/dimg/dimg/git_artifact.rb', line 19

def remote_git_artifacts(omit_empty: true)
  @remote_git_artifact_list ||= [].tap do |artifacts|
    Array(config._git_artifact._remote).each do |ga_config|
      repo = GitRepo::Remote.get_or_create(dapp, ga_config._name, url: ga_config._url)
      artifacts.concat(generate_git_artifacts(repo, omit_empty: omit_empty, **ga_config._artifact_options)) unless repo.empty?
    end
  end
end