-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
48 lines (45 loc) · 1.4 KB
/
flake.nix
File metadata and controls
48 lines (45 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
{
description = "The eng engineering tool to support engineering work";
nixConfig.bash-prompt-suffix = "eng.env} ";
inputs = {
nixpkgs.url = github:nixos/nixpkgs/nixpkgs-unstable;
levers = {
url = "github:kquick/nix-levers";
inputs.nixpkgs.follows = "nixpkgs";
};
fret-semantics = {
url = "https://raw.githubusercontent.com/NASA-SW-VnV/fret/refs/heads/master/fret-electron/app/parser/semantics.json";
flake = false;
};
};
outputs = { self, nixpkgs, levers, fret-semantics }:
{
apps = levers.eachSystem (s:
rec {
eng = {
type = "app";
program = "${self.packages.${s}.eng}/bin/eng";
};
default = eng;
});
devShells = levers.eachSystem (s:
{ default = self.packages."${s}".eng.env; });
packages = levers.eachSystem (s:
let pkgs = nixpkgs.legacyPackages.${s};
in rec {
default = eng;
eng = pkgs.stdenv.mkDerivation {
pname = "eng";
version = "1.1";
src = self;
buildInputs = [ pkgs.curl pkgs.swi-prolog ];
buildPhase = ''
cp ${fret-semantics} src/semantics.json
${pkgs.bash}/bin/bash ./eng.sh dev build
./eng dev build
'';
installPhase = "mkdir -p $out/bin && cp ./eng $out/bin";
};
});
};
}