From ecdb1288eb1ab635bfd8c81cedc5743fd99bbe8c Mon Sep 17 00:00:00 2001 From: Artemis Tosini Date: Sun, 10 Sep 2023 02:59:56 +0000 Subject: [PATCH] Initial commit, with OCR-B --- .gitignore | 1 + LICENSE | 3 ++ OCR-B-Regular.otf | Bin 0 -> 24656 bytes README.md | 1 + flake.lock | 60 +++++++++++++++++++++++++++++++++++++++ flake.nix | 70 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 135 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 OCR-B-Regular.otf create mode 100644 README.md create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2be92b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +result diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a98ae65 --- /dev/null +++ b/LICENSE @@ -0,0 +1,3 @@ +My code: be gay do crime + +Fonts: Licenses described in flake.nix diff --git a/OCR-B-Regular.otf b/OCR-B-Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..5fba217d72e2a4d4a71325d056e77fef40d701a0 GIT binary patch literal 24656 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

  • =h!!7UYQ=3>Ncd@bV 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 W9E7$Z=8=To{&Gr)nTYsZh2lTTnQ!3$ literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..37272fc --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Archive of various fonts I've found and don't want to lose. diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..4102e73 --- /dev/null +++ b/flake.lock @@ -0,0 +1,60 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1692799911, + "narHash": "sha256-3eihraek4qL744EvQXsK1Ha6C3CR7nnT8X2qWap4RNk=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "f9e7cf818399d17d347f847525c5a5a8032e4e44", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1694310981, + "narHash": "sha256-Rf6ICXzUXfi2ILwEggBJMmVVR06AKS5DMcXZd1qi24o=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "49772c4112bf70d28086b459d31710408745f842", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..60097fe --- /dev/null +++ b/flake.nix @@ -0,0 +1,70 @@ +{ + description = "Various fonts I've found online"; + inputs = { + flake-utils.url = "github:numtide/flake-utils"; + nixpkgs.url = "github:nixos/nixpkgs"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + }: + with builtins; + with nixpkgs.lib; + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs {inherit system;}; + buildFont = { + name, + files, + license, + author, + }: let + pathEndsWith = suffix: path: let + str = toString path; + sufLen = stringLength suffix; + sLen = stringLength str; + in + sufLen <= sLen && suffix == substring (sLen - sufLen) sufLen str; + + installType = extension: pathName: let + filteredFiles = filter (pathEndsWith ("." + extension)) files; + filename = file: lists.last (strings.splitString "/" (toString file)); + in + (optionalString (filteredFiles != []) "mkdir -p $out/share/fonts/${pathName}\n") + + concatStringsSep "\n" (map (file: "cp -v ${file} $out/share/fonts/${pathName}/${filename file}") filteredFiles); + in + pkgs.stdenvNoCC.mkDerivation { + inherit name; + + dontUnpack = true; + installPhase = '' + ${installType "ttf" "truetype"} + ${installType "otf" "opentype"} + ''; + + meta = { + inherit license; + platforms = platforms.all; + description = "${name} font by ${author}"; + }; + }; + + fonts = [ + { + name = "OCR-B"; + files = [./OCR-B-Regular.otf]; + license = licenses.cc-by-40; + author = "Matthew Anderson"; + } + ]; + in { + packages = listToAttrs (map (font: { + name = toLower font.name; + value = buildFont font; + }) + fonts); + + formatter = pkgs.alejandra; + }); +}