#!/usr/bin/env python # License: GPLv3 Copyright: 2019, Kovid Goyal import glob import os from setup.revendor import ReVendor class LiberationFonts(ReVendor): description = 'Download the Liberation fonts' NAME = 'liberation_fonts' TAR_NAME = 'liberation-fonts' VERSION = '2.1.5' DOWNLOAD_URL = 'https://github.com/liberationfonts/liberation-fonts/files/7261482/liberation-fonts-ttf-2.1.5.tar.gz' @property def vendored_dir(self): return self.j(self.RESOURCES, 'fonts', 'liberation') @property def version_file(self): return self.j(self.vendored_dir, 'version.txt') def already_present(self): if os.path.exists(self.version_file): with open(self.version_file) as f: return f.read() == self.VERSION return False def run(self, opts): if not opts.system_liberation_fonts and self.already_present(): self.info('Liberation Fonts already present in the resources directory, not downloading') return self.clean() os.makedirs(self.vendored_dir) self.use_symlinks = opts.system_liberation_fonts with self.temp_dir() as dl_src: src = opts.path_to_liberation_fonts or self.download_vendor_release(dl_src, opts.liberation_fonts_url) font_files = glob.glob(os.path.join(src, 'Liberation*.ttf')) if not font_files: raise SystemExit(f'No font files found in {src}') for x in font_files: self.add_file(x, os.path.basename(x)) with open(self.j(self.vendored_dir, 'version.txt'), 'w') as f: f.write(self.VERSION)