My personal-knowledge-system, with deeply integrated task tracking and long term goal planning capabilities.
1{
2 description = "Filaments dev flake";
3
4 # Flake inputs
5 inputs = {
6
7 nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.1"; # unstable Nixpkgs
8
9 fenix = {
10 url = "github:nix-community/fenix";
11 inputs.nixpkgs.follows = "nixpkgs";
12 };
13 };
14
15 # Flake outputs
16 outputs =
17 { self, ... }@inputs:
18
19 let
20 # The systems supported for this flake
21 supportedSystems = [
22 "x86_64-linux" # 64-bit Intel/AMD Linux
23 "aarch64-linux" # 64-bit ARM Linux
24 "x86_64-darwin" # 64-bit Intel macOS
25 "aarch64-darwin" # 64-bit ARM macOS
26 ];
27
28 # Helper to provide system-specific attributes
29 forEachSupportedSystem =
30 f:
31 inputs.nixpkgs.lib.genAttrs supportedSystems (
32 system:
33 f {
34 pkgs = import inputs.nixpkgs {
35 inherit system;
36 overlays = [
37 inputs.self.overlays.default
38 ];
39 };
40 }
41 );
42 in
43 {
44
45 overlays.default = final: prev: {
46
47 sea-orm-cli = final.rustPlatform.buildRustPackage rec {
48 pname = "sea-orm-cli";
49 version = "2.0.0-rc.37";
50
51 src = final.fetchCrate {
52 inherit pname version;
53
54 sha256 = "sha256-YbP85rVO41S7ZPWSpVz3jICLAEU8H/a2axJBtdFRuWY=";
55
56 };
57
58 cargoHash = "sha256-6lOXyaNxrIfCI3T9nIPR76rhQXvRzSVQUsPRjo5abmI=";
59
60 nativeBuildInputs = [ final.pkg-config ];
61
62 buildInputs = [
63 final.openssl
64 ];
65
66 doCheck = false; # Skip tests to speed up the build
67 };
68
69 rustToolchain =
70 with inputs.fenix.packages.${prev.stdenv.hostPlatform.system};
71 combine (
72 with stable;
73 [
74 clippy
75 rustc
76 cargo
77 rustfmt
78 rust-src
79 ]
80 );
81 };
82
83 devShells = forEachSupportedSystem (
84 { pkgs }:
85 {
86 default = pkgs.mkShellNoCC {
87 # The Nix packages provided in the environment
88 # Add any you need here
89 packages = with pkgs; [
90
91 rustToolchain
92 openssl
93 pkg-config
94 cargo-deny
95 cargo-edit
96 cargo-watch
97 rust-analyzer
98
99 sea-orm-cli
100
101 bacon
102 ];
103
104 # Set any environment variables for your dev shell
105 env = {
106 RUST_SRC_PATH = "${pkgs.rustToolchain}/lib/rustlib/src/rust/library";
107 };
108
109 # Add any shell logic you want executed any time the environment is activated
110 shellHook = "";
111 };
112 }
113 );
114 };
115}