Change crew to divide expand_dependencies and resolve_dependencies functions.

parent a1ddd9cb
......@@ -312,7 +312,7 @@ def resolve_dependencies_and_install
begin
origin = @pkg.name
resolveDependencies
resolve_dependencies
search origin, true
install
......@@ -329,7 +329,7 @@ def resolve_dependencies_and_install
end
end
def resolveDependencies
def expand_dependencies
@dependencies = []
# check source packages existance
......@@ -339,25 +339,25 @@ def resolveDependencies
if @pkg.is_binary?(@device[:architecture]) ||
(!@pkg.in_upgrade && @device[:installed_packages].any? { |pkg| pkg[:name] == @pkg.name })
# retrieve name of dependencies that doesn't contain :build tag
@check_deps = @pkg.dependencies.select {|k, v| !v.include?(:build)}.map {|k, v| k}
check_deps = @pkg.dependencies.select {|k, v| !v.include?(:build)}.map {|k, v| k}
elsif @pkg.is_fake?
# retrieve name of all dependencies
@check_deps = @pkg.dependencies.map {|k, v| k}
check_deps = @pkg.dependencies.map {|k, v| k}
else
# retrieve name of all dependencies
@check_deps = @pkg.dependencies.map {|k, v| k}
check_deps = @pkg.dependencies.map {|k, v| k}
# count the number of source packages to add buildessential into dependencies later
@source_package += 1
end
# remove a dependent package which is equal to the target
@check_deps.select! {|name| @pkgName != name}
check_deps.select! {|name| @pkgName != name}
# insert only not installed packages into dependencies
@dependencies = @check_deps.select {|name| @device[:installed_packages].none? {|pkg| pkg[:name] == name}}.concat(@dependencies)
# add new dependencies at the beginning of array
@dependencies = check_deps.clone.concat(@dependencies)
# check all dependencies recursively
@check_deps.each do |dep|
check_deps.each do |dep|
search dep, true
push_dependencies
end
......@@ -365,19 +365,26 @@ def resolveDependencies
push_dependencies
# Add buildessential and solve its dependencies if any of dependent
# Add buildessential's dependencies if any of dependent
# packages are made from source
if @source_package > 0
search 'buildessential', true
push_dependencies
end
@dependencies.uniq
end
def resolve_dependencies
dependencies = expand_dependencies
# leave only not installed packages in dependencies
dependencies.select! {|name| @device[:installed_packages].none? {|pkg| pkg[:name] == name}}
return if @dependencies.empty?
return if dependencies.empty?
puts "Following packages also need to be installed: "
@dependencies.uniq!
@dependencies.each do |dep|
dependencies.each do |dep|
print dep + " "
end
......@@ -396,7 +403,7 @@ def resolveDependencies
end
if proceed
@dependencies.each do |dep|
dependencies.each do |dep|
search dep
install
end
......@@ -455,7 +462,7 @@ def resolve_dependencies_and_build
# mark current package as which is required to compile from source
@pkg.build_from_source = true
resolveDependencies
resolve_dependencies
search origin, true
build_package Dir.pwd
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment