Beispiel #1
0
 def get(self, webfont_name, webfont_settings):
     """
     Get a manifest file and parse it
     
     @webfont_name: Webfont key name
     @webfont_settings: Dict of webfont settings
     """
     try:
         webfont_settings = extend_webfont_settings(webfont_settings)
     except IcomoonSettingsError as e:
         self.errors[webfont_name] = "Invalid webfont settings for '{}': {}".format(webfont_name, e.value)
         return
         
     filepath = os.path.join(webfont_settings['fontdir_path'], self.manifest_filename)
     if os.path.exists(filepath):
         self.manifests[webfont_name] = self.parse_manifest(filepath)
     else:
         self.errors[webfont_name] = "Filepath for webfont <strong>{name}</strong> does not exists: <code>{filepath}</code>".format(name=webfont_name, filepath=filepath)
    def handle(self, *args, **options):
        self.webfont_name = options['webfont_name']
        self.archive_path = options['archive_path']
        self.css_templatepath = options.get('css_template', settings.ICOMOON_CSS_TEMPLATE)
        self.requirements = options.get('requirements', settings.ICOMOON_ARCHIVE_REQUIREMENT)
        self.verbosity = int(options.get('verbosity'))

        self._info("* Using webfont name: {}", self.webfont_name)

        # Get the current manifest for given webfont name
        if self.webfont_name not in settings.ICOMOON_WEBFONTS:
            choices = "', '".join(settings.ICOMOON_WEBFONTS.keys())
            self._error("There is no defined webfont name '{name}' in your settings, choices are: '{choices}'", name=self.webfont_name, choices=choices)

        try:
            self.webfont_settings = extend_webfont_settings(settings.ICOMOON_WEBFONTS[self.webfont_name])
        except IcomoonSettingsError as e:
            self._error("Invalid webfont settings for '{}': {}", self.webfont_name, e.value)

        self._info("* Using webfont font dir: {}", self.webfont_settings['fontdir_path'])

        self.deploy()
        self._info("Finished !")