-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathflake.nix
More file actions
50 lines (48 loc) · 1.82 KB
/
flake.nix
File metadata and controls
50 lines (48 loc) · 1.82 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
49
50
{
description = "Description for the project";
inputs = {
flake-parts.url = "github:hercules-ci/flake-parts";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
};
outputs = inputs@{ flake-parts, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
];
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
perSystem = { config, self', inputs', pkgs, lib, system, ... }:
let
config = import ./config.nix { inherit lib; };
in
{
packages = rec {
exporter = pkgs.buildGoModule {
inherit (config.exporter-cli) version;
pname = config.exporter-cli.name;
ldflags = ["-X main.ShortName=${config.exporter-cli.name}"];
src = config.exporter-cli.src;
subPackages = ["cmd/exporter"];
vendorHash = config.exporter-cli.vendorHash;
meta = config.exporter-cli.meta;
};
"${config.exporter-cli.name}" = pkgs.runCommand "${config.exporter-cli.name}" {} ''
mkdir -p $out/bin
cp ${exporter}/bin/exporter $out/bin/${config.exporter-cli.name}
'';
};
devShells.default = pkgs.mkShell {
packages = with pkgs; [go];
};
apps.exporter = {
meta = config.exporter-cli.meta;
type = "app";
program = "${self'.packages.${config.exporter-cli.name}}/bin/${config.exporter-cli.name}";
};
checks = {
exporter = pkgs.runCommand "exporter-help" {} ''
${self'.packages.${config.exporter-cli.name}}/bin/${config.exporter-cli.name} --help > $out
'';
};
};
flake = {};
};
}