Your one-stop-cake-shop for everything Freshly Baked has to offer
1# SPDX-FileCopyrightText: 2025 FreshlyBakedCake
2#
3# SPDX-License-Identifier: MIT
4
5{ config, lib }:
6{
7 config = {
8 packages.default = config.packages.menu;
9 packages.menu = {
10 systems = [
11 "x86_64-linux"
12 "aarch64-linux"
13 ];
14
15 package =
16 {
17 fenix,
18 makeRustPlatform,
19 lib,
20 ...
21 }:
22 let
23 toolchain = fenix.complete.toolchain;
24
25 manifest = (lib.importTOML ./Cargo.toml).package;
26
27 platform = makeRustPlatform {
28 cargo = toolchain;
29 rustc = toolchain;
30 };
31 in
32 platform.buildRustPackage {
33 meta.mainProgram = "menu";
34 pname = manifest.name;
35 version = manifest.version;
36
37 src = ./.;
38
39 cargoLock.lockFile = ./Cargo.lock;
40 };
41 };
42
43 shells.default = config.shells.menu;
44 shells.menu = {
45 systems = [ "x86_64-linux" ];
46
47 shell =
48 {
49 bacon,
50 devenv,
51 fenix,
52 mkShell,
53 pkg-config,
54 pkgs,
55 reuse,
56 sqlx-cli,
57 stdenv,
58 ...
59 }:
60 mkShell {
61 packages = [
62 bacon
63 config.inputs.nilla-cli.result.packages.nilla-cli.result.${stdenv.hostPlatform.system}
64 config.inputs.nixpkgs.result.${stdenv.hostPlatform.system}.deadnix
65 # config.packages.nilla-fmt.result.${stdenv.hostPlatform.system}
66 # config.packages.treefmt.result.${stdenv.hostPlatform.system}
67 (config.inputs.npins.result {
68 inherit pkgs;
69 inherit (stdenv.hostPlatform) system;
70 })
71 devenv
72 pkg-config
73 reuse
74 (fenix.complete.withComponents [
75 "cargo"
76 "clippy"
77 "rust-src"
78 "rustc"
79 "rustfmt"
80 "rust-analyzer"
81 ])
82 sqlx-cli
83 ];
84 };
85 };
86 };
87}