Module: Homebrew::Bundle::MacAppStoreInstaller Private

Defined in:
bundle/mac_app_store_installer.rb

This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.

Class Method Summary collapse

Class Method Details

.app_id_installed?(id) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


55
56
57
# File 'bundle/mac_app_store_installer.rb', line 55

def self.app_id_installed?(id)
  installed_app_ids.include? id
end

.app_id_installed_and_up_to_date?(id, no_upgrade: false) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


48
49
50
51
52
53
# File 'bundle/mac_app_store_installer.rb', line 48

def self.app_id_installed_and_up_to_date?(id, no_upgrade: false)
  return false unless app_id_installed?(id)
  return true if no_upgrade

  !app_id_upgradable?(id)
end

.app_id_upgradable?(id) ⇒ Boolean

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Boolean)


59
60
61
# File 'bundle/mac_app_store_installer.rb', line 59

def self.app_id_upgradable?(id)
  outdated_app_ids.include? id
end

.install(name, id, preinstall: true, no_upgrade: false, verbose: false, force: false) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'bundle/mac_app_store_installer.rb', line 30

def self.install(name, id, preinstall: true, no_upgrade: false, verbose: false, force: false)
  return true unless preinstall

  if app_id_installed?(id)
    puts "Upgrading #{name} app. It is installed but not up-to-date." if verbose
    return false unless Bundle.system "mas", "upgrade", id.to_s, verbose: verbose

    return true
  end

  puts "Installing #{name} app. It is not currently installed." if verbose

  return false unless Bundle.system "mas", "install", id.to_s, verbose: verbose

  installed_app_ids << id
  true
end

.installed_app_idsObject

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



63
64
65
66
# File 'bundle/mac_app_store_installer.rb', line 63

def self.installed_app_ids
  require "bundle/mac_app_store_dumper"
  @installed_app_ids ||= Homebrew::Bundle::MacAppStoreDumper.app_ids
end

.outdated_app_idsObject

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



68
69
70
71
72
73
74
75
76
# File 'bundle/mac_app_store_installer.rb', line 68

def self.outdated_app_ids
  @outdated_app_ids ||= if Bundle.mas_installed?
    `mas outdated 2>/dev/null`.split("\n").map do |app|
      app.split(" ", 2).first.to_i
    end
  else
    []
  end
end

.preinstall(name, id, no_upgrade: false, verbose: false) ⇒ Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'bundle/mac_app_store_installer.rb', line 14

def self.preinstall(name, id, no_upgrade: false, verbose: false)
  unless Bundle.mas_installed?
    puts "Installing mas. It is not currently installed." if verbose
    Bundle.brew("install", "mas", verbose:)
    raise "Unable to install #{name} app. mas installation failed." unless Bundle.mas_installed?
  end

  if app_id_installed?(id) &&
     (no_upgrade || !app_id_upgradable?(id))
    puts "Skipping install of #{name} app. It is already installed." if verbose
    return false
  end

  true
end

.reset!Object

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



9
10
11
12
# File 'bundle/mac_app_store_installer.rb', line 9

def self.reset!
  @installed_app_ids = nil
  @outdated_app_ids = nil
end