|
30 | 30 |
|
31 | 31 | alpineLinux = { |
32 | 32 | flake = false; |
33 | | - url = "file+https://cdn.xeiaso.net/file/christine-static/hack/alpine-amd64-3.19.0-1.tar"; |
| 33 | + url = |
| 34 | + "file+https://cdn.xeiaso.net/file/christine-static/hack/alpine-amd64-3.19.0-1.tar"; |
34 | 35 | }; |
35 | 36 | }; |
36 | 37 |
|
37 | | - outputs = |
38 | | - { self |
39 | | - , nixpkgs |
40 | | - , flake-utils |
41 | | - , deno2nix |
42 | | - , iosevka |
43 | | - , typst |
44 | | - , gomod2nix |
45 | | - , alpineLinux |
46 | | - , ... |
47 | | - }: |
| 38 | + outputs = { self, nixpkgs, flake-utils, deno2nix, iosevka, typst, gomod2nix |
| 39 | + , alpineLinux, ... }: |
48 | 40 | flake-utils.lib.eachSystem [ |
49 | 41 | "x86_64-linux" |
50 | 42 | "aarch64-linux" |
51 | 43 | "aarch64-darwin" |
52 | | - ] |
53 | | - (system: |
| 44 | + ] (system: |
54 | 45 | let |
55 | 46 | graft = pkgs: pkg: |
56 | 47 | pkg.override { buildGoModule = pkgs.buildGo122Module; }; |
|
89 | 80 |
|
90 | 81 | # Generate a user-friendly version number. |
91 | 82 | version = builtins.substring 0 8 self.lastModifiedDate; |
92 | | - in |
93 | | - rec { |
| 83 | + in rec { |
94 | 84 | packages = rec { |
95 | 85 | bin = pkgs.buildGoApplication { |
96 | 86 | pname = "xesite_v4"; |
|
108 | 98 | subPackages = [ "cmd/patreon-saasproxy" ]; |
109 | 99 | }; |
110 | 100 |
|
| 101 | + iosevka = pkgs.stdenvNoCC.mkDerivation { |
| 102 | + name = "xesite-iosevka"; |
| 103 | + buildInputs = with pkgs; [ |
| 104 | + python311Packages.brotli |
| 105 | + python311Packages.fonttools |
| 106 | + ]; |
| 107 | + dontUnpack = true; |
| 108 | + buildPhase = '' |
| 109 | + mkdir -p out |
| 110 | + ${pkgs.unzip}/bin/unzip ${ |
| 111 | + self.inputs.iosevka.packages.${system}.default |
| 112 | + }/ttf.zip |
| 113 | + for ttf in ttf/*.ttf; do |
| 114 | + cp $ttf out |
| 115 | + name=`basename -s .ttf $ttf` |
| 116 | + pyftsubset \ |
| 117 | + $ttf \ |
| 118 | + --output-file=out/"$name".woff2 \ |
| 119 | + --flavor=woff2 \ |
| 120 | + --layout-features=* \ |
| 121 | + --no-hinting \ |
| 122 | + --desubroutinize \ |
| 123 | + --unicodes="U+0000-0170,U+00D7,U+00F7,U+2000-206F,U+2074,U+20AC,U+2122,U+2190-21BB,U+2212,U+2215,U+F8FF,U+FEFF,U+FFFD,U+00E8" |
| 124 | + done |
| 125 | + ''; |
| 126 | + installPhase = '' |
| 127 | + mkdir -p $out/static/css/iosevka |
| 128 | + cp out/* $out/static/css/iosevka |
| 129 | + ''; |
| 130 | + }; |
| 131 | + |
111 | 132 | docker = pkgs.dockerTools.buildLayeredImage { |
112 | 133 | name = "ghcr.io/xe/site/bin"; |
113 | 134 | tag = "latest"; |
|
130 | 151 | contents = with pkgs; [ cacert ]; |
131 | 152 | config = { |
132 | 153 | Cmd = [ "${patreon-bin}/bin/patreon-saasproxy" ]; |
133 | | - Env = [ |
134 | | - "HOME=/data" |
135 | | - ]; |
| 154 | + Env = [ "HOME=/data" ]; |
136 | 155 | Volumes."/data" = { }; |
137 | 156 | }; |
138 | 157 | }; |
|
167 | 186 | jq |
168 | 187 | jo |
169 | 188 |
|
| 189 | + earthly |
| 190 | + |
170 | 191 | # tools |
171 | 192 | ispell |
172 | 193 | pandoc |
|
0 commit comments