cask_dependent: fix incorrect requirement logic

This commit is contained in:
Bo Anderson 2022-08-24 23:46:43 +01:00
parent f12442cce6
commit ea44c21822
No known key found for this signature in database
GPG Key ID: 3DB94E204E137D65
2 changed files with 22 additions and 4 deletions

View File

@ -1,8 +1,17 @@
# typed: true
# frozen_string_literal: true
require "requirement"
# An adapter for casks to provide dependency information in a formula-like interface.
class CaskDependent
# Defines a dependency on another cask
class Requirement < ::Requirement
satisfy(build_env: false) do
Cask::CaskLoader.load(cask).installed?
end
end
attr_reader :cask
def initialize(cask)
@ -33,11 +42,21 @@ class CaskDependent
dsl_reqs = @cask.depends_on
dsl_reqs.arch&.each do |arch|
requirements << ArchRequirement.new([:x86_64]) if arch[:bits] == 64
requirements << ArchRequirement.new([arch[:type]])
arch = if arch[:bits] == 64
if arch[:type] == :intel
:x86_64
else
:"#{arch[:type]}64"
end
elsif arch[:type] == :intel && arch[:bits] == 32
:i386
else
arch[:type]
end
requirements << ArchRequirement.new([arch])
end
dsl_reqs.cask.each do |cask_ref|
requirements << Requirement.new([{ cask: cask_ref }])
requirements << CaskDependent::Requirement.new([{ cask: cask_ref }])
end
requirements << dsl_reqs.macos if dsl_reqs.macos

View File

@ -2,7 +2,6 @@
# frozen_string_literal: true
require "delegate"
require "cask_dependent"
# A collection of dependencies.
#