Homebrew sandboxes post_install, so cp fails with EPERM. Symlinks work around this and also ensure brew uninstall can cleanly remove fonts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
73 lines
2.2 KiB
Ruby
73 lines
2.2 KiB
Ruby
# typed: false
|
|
# frozen_string_literal: true
|
|
|
|
# This file was generated by the font folder cleanup script
|
|
# Do not edit this file directly
|
|
# Installs: OTF
|
|
|
|
class FontCopixelFont17643720790 < Formula
|
|
desc "Font: copixel-font-1764372079-0"
|
|
homepage "http://clancy.genet-godzilla.ts.net:8085/Fonts/homebrew-fonts"
|
|
url "http://clancy.genet-godzilla.ts.net:8085/Fonts/homebrew-fonts/archive/main.tar.gz"
|
|
version "1.0.0"
|
|
|
|
def install
|
|
# Create font directories
|
|
(share/"fonts").mkpath
|
|
(share/"fonts/truetype").mkpath
|
|
(share/"fonts/opentype").mkpath
|
|
(share/"fonts/webfonts").mkpath
|
|
|
|
# Install TTF fonts
|
|
Dir.glob("font_files/font-copixel-font-1764372079-0/ttf/*.ttf").each do |font|
|
|
system "cp", font, share/"fonts/truetype"
|
|
end
|
|
|
|
# Install OTF fonts
|
|
Dir.glob("font_files/font-copixel-font-1764372079-0/otf/*.otf").each do |font|
|
|
system "cp", font, share/"fonts/opentype"
|
|
end
|
|
|
|
# Install web fonts
|
|
Dir.glob("font_files/font-copixel-font-1764372079-0/web/*.{woff,woff2,eot,svg}").each do |font|
|
|
system "cp", font, share/"fonts/webfonts"
|
|
end
|
|
|
|
# Install documentation and other files
|
|
(share/"copixel-font-1764372079-0").mkpath
|
|
Dir.glob("font_files/font-copixel-font-1764372079-0/other_files/*").each do |file|
|
|
system "cp", "-r", file, share/"copixel-font-1764372079-0"
|
|
end
|
|
end
|
|
|
|
def post_install
|
|
user_fonts = Pathname.new(File.expand_path("~/Library/Fonts"))
|
|
user_fonts.mkpath
|
|
|
|
Dir.glob(share/"fonts/truetype/*.ttf").each do |f|
|
|
target = user_fonts/File.basename(f)
|
|
FileUtils.rm_f(target)
|
|
FileUtils.ln_sf(f, target)
|
|
end
|
|
Dir.glob(share/"fonts/opentype/*.otf").each do |f|
|
|
target = user_fonts/File.basename(f)
|
|
FileUtils.rm_f(target)
|
|
FileUtils.ln_sf(f, target)
|
|
end
|
|
end
|
|
|
|
def caveats
|
|
<<~EOS
|
|
Fonts have been copied to ~/Library/Fonts/ and should appear in Font Book.
|
|
|
|
Web fonts and other files are available in:
|
|
#{share}/fonts/webfonts
|
|
#{share}/copixel-font-1764372079-0
|
|
EOS
|
|
end
|
|
|
|
test do
|
|
assert (share/"fonts/opentype").glob("*.otf").any?, "No OTF fonts installed"
|
|
assert_predicate share/"copixel-font-1764372079-0", :directory?, "Other files dir missing"
|
|
end
|
|
end
|