aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib/hbc/cache.rb
blob: 9fc5fe0f3cece4906fd43335a185e17a77266f04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Hbc::Cache
  module_function

  def ensure_cache_exists
    return if Hbc.cache.exist?
    odebug "Creating Cache at #{Hbc.cache}"
    Hbc.cache.mkpath
  end

  def migrate_legacy_cache
    if Hbc.legacy_cache.exist?
      ohai "Migrating cached files to #{Hbc.cache}..."

      Hbc.legacy_cache.children.select(&:symlink?).each do |symlink|
        file = symlink.readlink

        new_name = file.basename
                       .sub(%r{\-((?:(\d|#{Hbc::DSL::Version::DIVIDER_REGEX})*\-\2*)*[^\-]+)$}x,
                            '--\1')

        renamed_file = Hbc.cache.join(new_name)

        if file.exist?
          puts "#{file} -> #{renamed_file}"
          FileUtils.mv(file, renamed_file)
        end

        FileUtils.rm(symlink)
      end

      FileUtils.remove_entry_secure(Hbc.legacy_cache)
    end
  end
end