aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib/hbc/cache.rb
blob: 7ae5fcc8cd0a2cbd615524ea5736c586d0cb6f33 (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
    return unless 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