|
17 | 17 | };
|
18 | 18 | };
|
19 | 19 |
|
20 |
| - outputs = { self, nixpkgs, nixpkgs-pinned, flake-utils, drpc, pnpm2nix }: |
21 |
| - flake-utils.lib.eachDefaultSystem (system: |
| 20 | + outputs = |
| 21 | + { |
| 22 | + self, |
| 23 | + nixpkgs, |
| 24 | + nixpkgs-pinned, |
| 25 | + flake-utils, |
| 26 | + drpc, |
| 27 | + pnpm2nix, |
| 28 | + }: |
| 29 | + flake-utils.lib.eachDefaultSystem ( |
| 30 | + system: |
22 | 31 | let
|
23 | 32 | pkgs = import nixpkgs {
|
24 | 33 | inherit system;
|
|
32 | 41 | inherit system;
|
33 | 42 | };
|
34 | 43 |
|
| 44 | + formatter = pkgs.nixfmt-rfc-style; |
| 45 | + |
35 | 46 | nodejs = pkgs.nodejs_20;
|
36 | 47 | pnpm = pkgs.pnpm_9.override {
|
37 |
| - inherit nodejs; # Ensure it points to the above nodejs version |
| 48 | + inherit nodejs; # Ensure it points to the above nodejs version |
38 | 49 | };
|
39 | 50 |
|
40 | 51 | # Check in https://search.nixos.org/packages to find new packages.
|
41 | 52 | # Use `nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update`
|
42 | 53 | # to update the lock file if packages are out-of-date.
|
43 | 54 |
|
44 | 55 | # From https://nixos.wiki/wiki/Google_Cloud_SDK
|
45 |
| - gdk = pkgs.google-cloud-sdk.withExtraComponents ([ pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin ]); |
| 56 | + gdk = pkgs.google-cloud-sdk.withExtraComponents [ |
| 57 | + pkgs.google-cloud-sdk.components.gke-gcloud-auth-plugin |
| 58 | + ]; |
46 | 59 |
|
47 | 60 | proto_gen_go_1_30 = pkgs.buildGoModule rec {
|
48 | 61 | name = "protoc-gen-go";
|
|
63 | 76 | # The minimal set of packages to build Coder.
|
64 | 77 | devShellPackages = with pkgs; [
|
65 | 78 | # google-chrome is not available on aarch64 linux
|
66 |
| - (lib.optionalDrvAttr ( !stdenv.isLinux || !stdenv.isAarch64 ) google-chrome) |
| 79 | + (lib.optionalDrvAttr (!stdenv.isLinux || !stdenv.isAarch64) google-chrome) |
67 | 80 | # strace is not available on OSX
|
68 |
| - (lib.optionalDrvAttr ( !pkgs.stdenv.isDarwin ) strace) |
| 81 | + (lib.optionalDrvAttr (!pkgs.stdenv.isDarwin) strace) |
69 | 82 | bat
|
70 | 83 | cairo
|
71 | 84 | curl
|
72 | 85 | delve
|
| 86 | + dive |
73 | 87 | drpc.defaultPackage.${system}
|
| 88 | + formatter |
74 | 89 | fzf
|
75 | 90 | gcc
|
76 | 91 | gdk
|
|
129 | 144 |
|
130 | 145 | src = ./site/.;
|
131 | 146 | # Required for the `canvas` package!
|
132 |
| - extraBuildInputs = with pkgs; [ |
133 |
| - cairo |
134 |
| - pango |
135 |
| - pixman |
136 |
| - libpng libjpeg giflib librsvg |
137 |
| - python312Packages.setuptools |
138 |
| - ] ++ ( lib.optionals stdenv.targetPlatform.isDarwin [ darwin.apple_sdk.frameworks.Foundation xcbuild ] ); |
| 147 | + extraBuildInputs = |
| 148 | + with pkgs; |
| 149 | + [ |
| 150 | + cairo |
| 151 | + pango |
| 152 | + pixman |
| 153 | + libpng |
| 154 | + libjpeg |
| 155 | + giflib |
| 156 | + librsvg |
| 157 | + python312Packages.setuptools |
| 158 | + ] |
| 159 | + ++ (lib.optionals stdenv.targetPlatform.isDarwin [ |
| 160 | + darwin.apple_sdk.frameworks.Foundation |
| 161 | + xcbuild |
| 162 | + ]); |
139 | 163 | installInPlace = true;
|
140 | 164 | distDir = "out";
|
141 | 165 | };
|
|
144 | 168 |
|
145 | 169 | # To make faster subsequent builds, you could extract the `.zst`
|
146 | 170 | # slim bundle into it's own derivation.
|
147 |
| - buildFat = osArch: |
| 171 | + buildFat = |
| 172 | + osArch: |
148 | 173 | pkgs.buildGo122Module {
|
149 | 174 | name = "coder-${osArch}";
|
150 | 175 | # Updated with ./scripts/update-flake.sh`.
|
151 | 176 | # This should be updated whenever go.mod changes!
|
152 |
| - vendorHash = "sha256-DNQ3UPQoiiWEatMPj6B7QGGy9qOSvOmjADsrr+drCBY="; |
| 177 | + vendorHash = "sha256-hJBNmHz9ZJLS/QTu8w8y1w/Yi45aSoaSeZ//ysllp6c="; |
153 | 178 | proxyVendor = true;
|
154 | 179 | src = ./.;
|
155 |
| - nativeBuildInputs = with pkgs; [ getopt openssl zstd ]; |
| 180 | + nativeBuildInputs = with pkgs; [ |
| 181 | + getopt |
| 182 | + openssl |
| 183 | + zstd |
| 184 | + ]; |
156 | 185 | preBuild = ''
|
157 | 186 | # Replaces /usr/bin/env with an absolute path to the interpreter.
|
158 | 187 | patchShebangs ./scripts
|
|
177 | 206 | '';
|
178 | 207 | };
|
179 | 208 | in
|
180 |
| - { |
| 209 | + rec { |
| 210 | + inherit formatter; |
| 211 | + |
181 | 212 | devShells = {
|
182 | 213 | default = pkgs.mkShell {
|
183 | 214 | buildInputs = devShellPackages;
|
|
186 | 217 | export PLAYWRIGHT_SKIP_VALIDATE_HOST_REQUIREMENTS=true
|
187 | 218 | '';
|
188 | 219 |
|
189 |
| - LOCALE_ARCHIVE = with pkgs; lib.optionalDrvAttr stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive"; |
| 220 | + LOCALE_ARCHIVE = |
| 221 | + with pkgs; |
| 222 | + lib.optionalDrvAttr stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive"; |
190 | 223 | };
|
191 | 224 | };
|
192 | 225 |
|
193 |
| - packages = { |
194 |
| - proto_gen_go = proto_gen_go_1_30; |
195 |
| - all = pkgs.buildEnv { |
196 |
| - name = "all-packages"; |
197 |
| - paths = devShellPackages; |
198 |
| - }; |
199 |
| - site = buildSite; |
200 |
| - |
201 |
| - # Copying `OS_ARCHES` from the Makefile. |
202 |
| - linux_amd64 = buildFat "linux_amd64"; |
203 |
| - linux_arm64 = buildFat "linux_arm64"; |
204 |
| - darwin_amd64 = buildFat "darwin_amd64"; |
205 |
| - darwin_arm64 = buildFat "darwin_arm64"; |
206 |
| - windows_amd64 = buildFat "windows_amd64.exe"; |
207 |
| - windows_arm64 = buildFat "windows_arm64.exe"; |
208 |
| - }; |
| 226 | + packages = |
| 227 | + { |
| 228 | + default = packages.${system}; |
| 229 | + |
| 230 | + site = buildSite; |
| 231 | + |
| 232 | + # Copying `OS_ARCHES` from the Makefile. |
| 233 | + x86_64-linux = buildFat "linux_amd64"; |
| 234 | + aarch64-linux = buildFat "linux_arm64"; |
| 235 | + x86_64-darwin = buildFat "darwin_amd64"; |
| 236 | + aarch64-darwin = buildFat "darwin_arm64"; |
| 237 | + x86_64-windows = buildFat "windows_amd64.exe"; |
| 238 | + aarch64-windows = buildFat "windows_arm64.exe"; |
| 239 | + } |
| 240 | + // (pkgs.lib.optionalAttrs pkgs.stdenv.isLinux { |
| 241 | + dev_image = pkgs.dockerTools.buildNixShellImage { |
| 242 | + name = "codercom/oss-dogfood-nix"; |
| 243 | + tag = "latest-${system}"; |
| 244 | + |
| 245 | + drv = devShells.default.overrideAttrs (oldAttrs: { |
| 246 | + buildInputs = oldAttrs.buildInputs ++ [ pkgs.nix ]; |
| 247 | + }); |
| 248 | + }; |
| 249 | + }); |
209 | 250 | }
|
210 | 251 | );
|
211 | 252 | }
|
0 commit comments