diff options
author | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
---|---|---|
committer | Rutger Broekhoff | 2024-05-02 20:27:40 +0200 |
commit | 17a3ea880402338420699e03bcb24181e4ff3924 (patch) | |
tree | da666ef91e0b60d20aa0b01529644c136fd1f4ab /flake.nix | |
download | oeuf-17a3ea880402338420699e03bcb24181e4ff3924.tar.gz oeuf-17a3ea880402338420699e03bcb24181e4ff3924.zip |
Initial commit
Based on dc4ba6a
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..df5fffb --- /dev/null +++ b/flake.nix | |||
@@ -0,0 +1,137 @@ | |||
1 | { | ||
2 | inputs = { | ||
3 | nixpkgs.url = "https://flakehub.com/f/NixOs/nixpkgs/*.tar.gz"; | ||
4 | flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.88.tar.gz"; | ||
5 | libtmi8 = { | ||
6 | url = "path:./lib/libtmi8"; | ||
7 | inputs.nixpkgs.follows = "nixpkgs"; | ||
8 | inputs.flake-utils.follows = "flake-utils"; | ||
9 | }; | ||
10 | }; | ||
11 | |||
12 | outputs = { self, nixpkgs, flake-utils, libtmi8, ... }@inputs: | ||
13 | { | ||
14 | nixosModules = rec { | ||
15 | oeuf = import ./module self; | ||
16 | default = oeuf; | ||
17 | }; | ||
18 | } // flake-utils.lib.eachDefaultSystem | ||
19 | (system: | ||
20 | let | ||
21 | libtmi8Overlay = final: prev: { oeuf-libtmi8 = libtmi8.packages.${system}.oeuf-libtmi8; }; | ||
22 | |||
23 | pkgs = import nixpkgs { | ||
24 | inherit system; | ||
25 | overlays = [ libtmi8Overlay ]; | ||
26 | }; | ||
27 | boostPkg = pkgs.boost182; | ||
28 | |||
29 | inherit (pkgs.gcc13) stdenv; | ||
30 | |||
31 | oeuf-augmentkv6 = stdenv.mkDerivation { | ||
32 | name = "oeuf-augmentkv6"; | ||
33 | src = ./.; | ||
34 | |||
35 | nativeBuildInputs = with pkgs; [ gcc13 boostPkg ]; | ||
36 | buildInputs = with pkgs; [ arrow-cpp oeuf-libtmi8 ]; | ||
37 | buildPhase = '' | ||
38 | cd src/augmentkv6 | ||
39 | make augmentkv6 | ||
40 | ''; | ||
41 | |||
42 | installPhase = '' | ||
43 | mkdir -p $out/bin | ||
44 | cp augmentkv6 $out/bin/oeuf-augmentkv6 | ||
45 | ''; | ||
46 | }; | ||
47 | |||
48 | oeuf-filterkv6 = stdenv.mkDerivation { | ||
49 | name = "oeuf-filterkv6"; | ||
50 | src = ./.; | ||
51 | |||
52 | nativeBuildInputs = with pkgs; [ gcc13 ]; | ||
53 | buildInputs = with pkgs; [ arrow-cpp oeuf-libtmi8 ]; | ||
54 | buildPhase = '' | ||
55 | cd src/filterkv6 | ||
56 | make filterkv6 | ||
57 | ''; | ||
58 | |||
59 | installPhase = '' | ||
60 | mkdir -p $out/bin | ||
61 | cp filterkv6 $out/bin/oeuf-filterkv6 | ||
62 | ''; | ||
63 | }; | ||
64 | |||
65 | oeuf-bundleparquet = stdenv.mkDerivation { | ||
66 | name = "oeuf-bundleparquet"; | ||
67 | src = ./.; | ||
68 | |||
69 | nativeBuildInputs = with pkgs; [ gcc13 ]; | ||
70 | buildInputs = with pkgs; [ arrow-cpp curl nlohmann_json prometheus-cpp zlib oeuf-libtmi8 ]; | ||
71 | buildPhase = '' | ||
72 | cd src/bundleparquet | ||
73 | make bundleparquet | ||
74 | ''; | ||
75 | |||
76 | installPhase = '' | ||
77 | mkdir -p $out/bin | ||
78 | cp bundleparquet $out/bin/oeuf-bundleparquet | ||
79 | ''; | ||
80 | }; | ||
81 | |||
82 | oeuf-querykv1 = stdenv.mkDerivation { | ||
83 | name = "oeuf-querykv1"; | ||
84 | src = ./.; | ||
85 | |||
86 | nativeBuildInputs = with pkgs; [ gcc13 ]; | ||
87 | buildInputs = with pkgs; [ oeuf-libtmi8 boostPkg ]; | ||
88 | buildPhase = '' | ||
89 | cd src/querykv1 | ||
90 | make querykv1 | ||
91 | ''; | ||
92 | |||
93 | installPhase = '' | ||
94 | mkdir -p $out/bin | ||
95 | cp querykv1 $out/bin/oeuf-querykv1 | ||
96 | ''; | ||
97 | }; | ||
98 | |||
99 | oeuf-recvkv6 = stdenv.mkDerivation { | ||
100 | name = "oeuf-recvkv6"; | ||
101 | src = ./.; | ||
102 | |||
103 | nativeBuildInputs = with pkgs; [ gcc13 ]; | ||
104 | buildInputs = with pkgs; [ zeromq zlib arrow-cpp nlohmann_json prometheus-cpp rapidxml oeuf-libtmi8 ]; | ||
105 | buildPhase = '' | ||
106 | cd src/recvkv6 | ||
107 | make recvkv6 | ||
108 | ''; | ||
109 | |||
110 | installPhase = '' | ||
111 | mkdir -p $out/bin | ||
112 | cp recvkv6 $out/bin/oeuf-recvkv6 | ||
113 | ''; | ||
114 | }; | ||
115 | |||
116 | oeuf-archiver = import ./script/archiver { | ||
117 | pkgs = pkgs // { inherit oeuf-bundleparquet; }; | ||
118 | }; | ||
119 | |||
120 | oeuf-synckv6 = import ./script/synckv6 { inherit pkgs; }; | ||
121 | in | ||
122 | { | ||
123 | packages.oeuf-archiver = oeuf-archiver; | ||
124 | packages.oeuf-augmentkv6 = oeuf-augmentkv6; | ||
125 | packages.oeuf-synckv6 = oeuf-synckv6; | ||
126 | packages.oeuf-filterkv6 = oeuf-filterkv6; | ||
127 | packages.oeuf-bundleparquet = oeuf-bundleparquet; | ||
128 | packages.oeuf-querykv1 = oeuf-querykv1; | ||
129 | packages.oeuf-recvkv6 = oeuf-recvkv6; | ||
130 | |||
131 | devShells.default = pkgs.mkShell { | ||
132 | inputsFrom = [ oeuf-bundleparquet oeuf-querykv1 oeuf-recvkv6 ]; | ||
133 | }; | ||
134 | |||
135 | formatter = pkgs.nixpkgs-fmt; | ||
136 | }); | ||
137 | } | ||