26 lines
790 B
Clojure
26 lines
790 B
Clojure
(ns fira-code.classes
|
|
(:require
|
|
[clojure.java.io :as io]
|
|
[clojure.string :as str]
|
|
[fira-code.glyphs :as glyphs]
|
|
[fira-code.files :as files]))
|
|
|
|
(defn fill-class [font file]
|
|
(let [filename (.getName file)
|
|
class-name (->> filename
|
|
(re-find #"classes/([^/]+)\.fea$")
|
|
(second))
|
|
class-code (str/trim (slurp file))
|
|
class {:name class-name
|
|
:code class-code}]
|
|
(glyphs/set-class font class-name class)))
|
|
|
|
(defn fill-all [font]
|
|
(let [class-files (files/find "classes" #"classes/[^/]+\.fea$")]
|
|
(doseq [file class-files]
|
|
(try
|
|
(fill-class font file)
|
|
(catch Exception e
|
|
(println (str "ERROR: Could not fill class from file " (.getPath file) ": " e)))))
|
|
font))
|