Simple tool for automatic file management
1# SPDX-FileCopyrightText: 2024 Łukasz Niemier <#@hauleth.dev>
2#
3# SPDX-License-Identifier: EUPL-1.2
4{
5 inputs = {
6 nixpkgs.url = "flake:nixpkgs";
7 systems.url = "github:nix-systems/default";
8 flake-parts.url = "github:hercules-ci/flake-parts";
9 fenix = {
10 url = "github:nix-community/fenix";
11 inputs.nixpkgs.follows = "nixpkgs";
12 };
13 nickel.url = "github:tweag/nickel/stable";
14 devenv.url = "github:cachix/devenv";
15 };
16
17 nixConfig = {
18 extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
19 extra-substituters = "https://devenv.cachix.org";
20 };
21
22 outputs = {flake-parts, ...} @ inputs:
23 flake-parts.lib.mkFlake {inherit inputs;} {
24 imports = [
25 inputs.devenv.flakeModule
26 ];
27
28 systems = import inputs.systems;
29
30 perSystem = {
31 self',
32 pkgs,
33 inputs',
34 ...
35 }: {
36 formatter = pkgs.alejandra;
37
38 packages = {
39 default = self'.packages.ptsd;
40 ptsd = pkgs.callPackage ./nix/ptsd.nix {};
41 };
42
43 devenv.shells.default = {
44 languages.rust = {
45 enable = true;
46 };
47
48 packages =
49 [
50 pkgs.scdoc
51 pkgs.cargo-nextest
52 pkgs.cargo-outdated
53 pkgs.reuse
54 inputs'.nickel.packages.default
55 ]
56 ++ pkgs.lib.lists.optionals pkgs.stdenv.isDarwin (let
57 inherit (pkgs.darwin.apple_sdk) frameworks;
58 in [
59 frameworks.Foundation
60 pkgs.libiconv
61 pkgs.darwin.libobjc
62 ]);
63 };
64 };
65 };
66}