mirror of
https://github.com/zaphar/Heracles.git
synced 2025-07-22 12:09:48 -04:00
maint: Run nix stuff through the formatter
There are several choices for formatting Nix code, but IMHO alejandra is the right kind of opinionated: <https://github.com/kamadorueda/alejandra>.
This commit is contained in:
parent
847413f4f5
commit
fe162968e5
19
default.nix
19
default.nix
@ -1,11 +1,12 @@
|
|||||||
let
|
let
|
||||||
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
|
||||||
in
|
in
|
||||||
(import (
|
(import (
|
||||||
fetchTarball {
|
fetchTarball {
|
||||||
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
|
||||||
sha256 = lock.nodes.flake-compat.locked.narHash;
|
sha256 = lock.nodes.flake-compat.locked.narHash;
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
src = ./.;
|
src = ./.;
|
||||||
}).defaultNix
|
})
|
||||||
|
.defaultNix
|
||||||
|
270
flake.nix
270
flake.nix
@ -6,147 +6,163 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
naersk.url = "github:nix-community/naersk";
|
naersk.url = "github:nix-community/naersk";
|
||||||
flake-compat = { url = github:edolstra/flake-compat; flake = false; };
|
flake-compat = {
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
url = github:edolstra/flake-compat;
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {nixpkgs, flake-utils, naersk, rust-overlay, ...}:
|
outputs = {
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
naersk,
|
||||||
|
rust-overlay,
|
||||||
|
...
|
||||||
|
}:
|
||||||
flake-utils.lib.eachDefaultSystem (system: let
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
overlays = [
|
overlays = [
|
||||||
rust-overlay.overlays.default
|
rust-overlay.overlays.default
|
||||||
];
|
];
|
||||||
pkgs = import nixpkgs { inherit system overlays; };
|
pkgs = import nixpkgs {inherit system overlays;};
|
||||||
rust-bin = pkgs.rust-bin.stable."1.71.0".default;
|
rust-bin = pkgs.rust-bin.stable."1.71.0".default;
|
||||||
naersk-lib = pkgs.callPackage naersk {
|
naersk-lib = pkgs.callPackage naersk {
|
||||||
rustc = rust-bin;
|
rustc = rust-bin;
|
||||||
cargo = rust-bin;
|
cargo = rust-bin;
|
||||||
};
|
};
|
||||||
heracles = naersk-lib.buildPackage {
|
heracles = naersk-lib.buildPackage {
|
||||||
name = "heracles";
|
name = "heracles";
|
||||||
verion = "0.0.1";
|
verion = "0.0.1";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
nativeBuildInputs = [ pkgs.pkg-config ];
|
nativeBuildInputs = [pkgs.pkg-config];
|
||||||
buildInputs = (
|
buildInputs =
|
||||||
if pkgs.stdenv.isDarwin then
|
(
|
||||||
with pkgs.darwin.apple_sdk.frameworks; [ Security SystemConfiguration ]
|
if pkgs.stdenv.isDarwin
|
||||||
else
|
then with pkgs.darwin.apple_sdk.frameworks; [Security SystemConfiguration]
|
||||||
[ pkgs.openssl ]) ++ [rust-bin];
|
else [pkgs.openssl]
|
||||||
|
)
|
||||||
|
++ [rust-bin];
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
packages.default = heracles;
|
packages.default = heracles;
|
||||||
}) // {
|
})
|
||||||
nixosModule = {config, pkgs, lib}: with lib; {
|
// {
|
||||||
options = {
|
nixosModule = {
|
||||||
services.heracles.enable = mkEnableOption "enable heracles service";
|
config,
|
||||||
services.heracles.listen = mkOption {
|
pkgs,
|
||||||
description = "[host]:port address for heracles to listen on";
|
lib,
|
||||||
default = "localhost:8080";
|
}:
|
||||||
defaultText = "localhost:8080";
|
with lib; {
|
||||||
};
|
options = {
|
||||||
|
services.heracles.enable = mkEnableOption "enable heracles service";
|
||||||
services.heracles.settings = mkOption {
|
services.heracles.listen = mkOption {
|
||||||
description = "heracles dashboard Configuration";
|
description = "[host]:port address for heracles to listen on";
|
||||||
default = [
|
default = "localhost:8080";
|
||||||
{
|
defaultText = "localhost:8080";
|
||||||
title = "A dashboard";
|
|
||||||
graphs = [
|
|
||||||
{
|
|
||||||
title = "Graph title";
|
|
||||||
query_type = "Range";
|
|
||||||
# yaxis formatting default for this graph
|
|
||||||
d3_tick_format = "~s";
|
|
||||||
plots = [
|
|
||||||
{
|
|
||||||
source = "http://heimdall:9001";
|
|
||||||
query = ''
|
|
||||||
sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
name_function = "`\${labels.instance}`";
|
|
||||||
named_axis = "y";
|
|
||||||
# yaxis formatting for this subplot
|
|
||||||
d3_tick_format = "~s";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# span for this graph.
|
|
||||||
span = {
|
|
||||||
end = "now";
|
|
||||||
duration = "1d";
|
|
||||||
step_duration = "10min";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# default span for dashboard
|
|
||||||
span = {
|
|
||||||
end = "now";
|
|
||||||
duration = "1d";
|
|
||||||
step_duration = "10min";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
defaultText = ''
|
|
||||||
[
|
|
||||||
{
|
|
||||||
title = "A dashboard";
|
|
||||||
graphs = [
|
|
||||||
{
|
|
||||||
title = "Graph title";
|
|
||||||
query_type = "Range";
|
|
||||||
# yaxis formatting default for this graph
|
|
||||||
d3_tick_format = "~s";
|
|
||||||
plots = [
|
|
||||||
{
|
|
||||||
source = "http://heimdall:9001";
|
|
||||||
query = \'\'
|
|
||||||
sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
|
|
||||||
\'\';
|
|
||||||
meta = {
|
|
||||||
name_label = "instance";
|
|
||||||
name_prefix = "trace name prefix";
|
|
||||||
name_suffix = "trace name suffix";
|
|
||||||
named_axis = "y";
|
|
||||||
# yaxis formatting for this subplot
|
|
||||||
d3_tick_format = "~s";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# span for this graph.
|
|
||||||
span = {
|
|
||||||
end = "now";
|
|
||||||
duration = "1d";
|
|
||||||
step_duration = "10min";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# default span for dashboard
|
|
||||||
span = {
|
|
||||||
end = "now";
|
|
||||||
duration = "1d";
|
|
||||||
step_duration = "10min";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf config.services.heracles.enable {
|
services.heracles.settings = mkOption {
|
||||||
environment.etc."heracles.yaml" = {
|
description = "heracles dashboard Configuration";
|
||||||
text = (generators.toYAML {} config.services.heracles.settings);
|
default = [
|
||||||
};
|
{
|
||||||
systemd.services.heracles = {
|
title = "A dashboard";
|
||||||
wantedBy = [ "multi-user.target" "default.target" ];
|
graphs = [
|
||||||
wants = [ "network.target" ];
|
{
|
||||||
after = [ "network-online.target" ];
|
title = "Graph title";
|
||||||
serviceConfig = {
|
query_type = "Range";
|
||||||
Restart = "on-failure";
|
# yaxis formatting default for this graph
|
||||||
RestartSec = "30s";
|
d3_tick_format = "~s";
|
||||||
ExecStart = "${pkgs.heracles}/bin/heracles --listen ${config.services.heracles.listen} --config=${config.environment.etc."heracles.yaml".target}";
|
plots = [
|
||||||
};
|
{
|
||||||
};
|
source = "http://heimdall:9001";
|
||||||
|
query = ''
|
||||||
|
sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
|
||||||
|
'';
|
||||||
|
meta = {
|
||||||
|
name_function = "`\${labels.instance}`";
|
||||||
|
named_axis = "y";
|
||||||
|
# yaxis formatting for this subplot
|
||||||
|
d3_tick_format = "~s";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# span for this graph.
|
||||||
|
span = {
|
||||||
|
end = "now";
|
||||||
|
duration = "1d";
|
||||||
|
step_duration = "10min";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# default span for dashboard
|
||||||
|
span = {
|
||||||
|
end = "now";
|
||||||
|
duration = "1d";
|
||||||
|
step_duration = "10min";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
defaultText = ''
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title = "A dashboard";
|
||||||
|
graphs = [
|
||||||
|
{
|
||||||
|
title = "Graph title";
|
||||||
|
query_type = "Range";
|
||||||
|
# yaxis formatting default for this graph
|
||||||
|
d3_tick_format = "~s";
|
||||||
|
plots = [
|
||||||
|
{
|
||||||
|
source = "http://heimdall:9001";
|
||||||
|
query = \'\'
|
||||||
|
sum by (instance)(irate(node_cpu_seconds_total{job="nodestats"}[5m]))
|
||||||
|
\'\';
|
||||||
|
meta = {
|
||||||
|
name_label = "instance";
|
||||||
|
name_prefix = "trace name prefix";
|
||||||
|
name_suffix = "trace name suffix";
|
||||||
|
named_axis = "y";
|
||||||
|
# yaxis formatting for this subplot
|
||||||
|
d3_tick_format = "~s";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# span for this graph.
|
||||||
|
span = {
|
||||||
|
end = "now";
|
||||||
|
duration = "1d";
|
||||||
|
step_duration = "10min";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
# default span for dashboard
|
||||||
|
span = {
|
||||||
|
end = "now";
|
||||||
|
duration = "1d";
|
||||||
|
step_duration = "10min";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf config.services.heracles.enable {
|
||||||
|
environment.etc."heracles.yaml" = {
|
||||||
|
text = generators.toYAML {} config.services.heracles.settings;
|
||||||
|
};
|
||||||
|
systemd.services.heracles = {
|
||||||
|
wantedBy = ["multi-user.target" "default.target"];
|
||||||
|
wants = ["network.target"];
|
||||||
|
after = ["network-online.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "30s";
|
||||||
|
ExecStart = "${pkgs.heracles}/bin/heracles --listen ${config.services.heracles.listen} --config=${config.environment.etc."heracles.yaml".target}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user