mirror of
https://codeberg.org/icewind/palantir.git
synced 2026-06-03 18:24:08 +02:00
more ci work, clippy
This commit is contained in:
parent
73d4980fad
commit
f72f4689e6
8 changed files with 83 additions and 48 deletions
45
.github/workflows/nix.yaml
vendored
45
.github/workflows/nix.yaml
vendored
|
|
@ -4,18 +4,47 @@ on:
|
|||
push:
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v20
|
||||
- uses: icewind1991/attic-action@v1
|
||||
with:
|
||||
name: ci
|
||||
instance: https://cache.icewind.me
|
||||
authToken: '${{ secrets.ATTIC_TOKEN }}'
|
||||
- run: nix build .#check
|
||||
|
||||
clippy:
|
||||
runs-on: ubuntu-latest
|
||||
needs: check
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v20
|
||||
- uses: icewind1991/attic-action@v1
|
||||
with:
|
||||
name: ci
|
||||
instance: https://cache.icewind.me
|
||||
authToken: '${{ secrets.ATTIC_TOKEN }}'
|
||||
- run: nix build .#clippy
|
||||
|
||||
matrix:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
matrix: ${{ steps.set-matrix.outputs.matrix }}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v20
|
||||
- id: set-matrix
|
||||
run: echo "matrix={\"target\":$(nix eval --json ".#targets.x86_64-linux")}" | tee $GITHUB_OUTPUT
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [check, matrix]
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
target:
|
||||
- x86_64-unknown-linux-gnu
|
||||
- x86_64-pc-windows-gnu
|
||||
- x86_64-unknown-linux-musl
|
||||
- i686-unknown-linux-musl
|
||||
- armv7-unknown-linux-musleabihf
|
||||
- aarch64-unknown-linux-musl
|
||||
matrix: ${{fromJson(needs.matrix.outputs.matrix)}}
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: cachix/install-nix-action@v20
|
||||
|
|
|
|||
11
flake.lock
generated
11
flake.lock
generated
|
|
@ -7,16 +7,17 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1679567394,
|
||||
"narHash": "sha256-ZvLuzPeARDLiQUt6zSZFGOs+HZmE+3g4QURc8mkBsfM=",
|
||||
"owner": "nix-community",
|
||||
"lastModified": 1686242667,
|
||||
"narHash": "sha256-I7Kwp06WX/9E+rEND1i1wjdKQQm3XiDxYOyNK9fuJu0=",
|
||||
"owner": "icewind1991",
|
||||
"repo": "naersk",
|
||||
"rev": "88cd22380154a2c36799fe8098888f0f59861a15",
|
||||
"rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"owner": "icewind1991",
|
||||
"repo": "naersk",
|
||||
"rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
|
|
|
|||
43
flake.nix
43
flake.nix
|
|
@ -2,7 +2,7 @@
|
|||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||
utils.url = "github:numtide/flake-utils";
|
||||
naersk.url = "github:nix-community/naersk";
|
||||
naersk.url = "github:icewind1991/naersk?rev=6d245a3bbb2ee31ec726bb57b9a8b206302e7110";
|
||||
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
|
@ -21,6 +21,7 @@
|
|||
pkgs = import nixpkgs {
|
||||
inherit system overlays;
|
||||
};
|
||||
lib = pkgs.lib;
|
||||
|
||||
pkgs-cross-mingw = import nixpkgs {
|
||||
crossSystem = {
|
||||
|
|
@ -72,10 +73,14 @@
|
|||
echo 'SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="${pkgs.coreutils-full}/bin/chgrp -R powermonitoring /sys%p", RUN+="${pkgs.coreutils-full}/bin/chmod -R g=u /sys%p"' >> $out/lib/udev/rules.d/51-palantir.rules
|
||||
'';
|
||||
|
||||
buildWindows = target: naersk'.buildPackage {
|
||||
pname = "palantir";
|
||||
src = ./.;
|
||||
src = lib.sources.sourceByRegex (lib.cleanSource ./.) ["Cargo.*" "(src|benches)(/.*)?"];
|
||||
|
||||
nearskOpt = {
|
||||
pname = "palantir";
|
||||
root = src;
|
||||
};
|
||||
|
||||
buildWindows = target: naersk'.buildPackage (nearskOpt // {
|
||||
strictDeps = true;
|
||||
depsBuildBuild = with pkgs; [
|
||||
mingw_w64_cc
|
||||
|
|
@ -86,12 +91,9 @@
|
|||
overrideMain = args: args // { buildInputs = [ windows.pthreads ]; };
|
||||
|
||||
CARGO_BUILD_TARGET = target;
|
||||
};
|
||||
|
||||
buildLinux = target: naersk'.buildPackage ({
|
||||
pname = "palantir";
|
||||
src = ./.;
|
||||
});
|
||||
|
||||
buildLinux = target: naersk'.buildPackage (nearskOpt // {
|
||||
postInstall = addUdev;
|
||||
|
||||
CARGO_BUILD_TARGET = target;
|
||||
|
|
@ -99,21 +101,28 @@
|
|||
buildAny = target: if (nixpkgs.lib.strings.hasInfix "windows" target) then (buildWindows target) else (buildLinux target);
|
||||
in rec {
|
||||
# `nix build`
|
||||
packages = nixpkgs.lib.attrsets.genAttrs targets buildAny;
|
||||
defaultPackage = naersk'.buildPackage {
|
||||
pname = "palantir";
|
||||
src = ./.;
|
||||
postInstall = addUdev;
|
||||
};
|
||||
packages = nixpkgs.lib.attrsets.genAttrs targets buildAny // rec {
|
||||
palantir = naersk'.buildPackage (nearskOpt // {
|
||||
postInstall = addUdev;
|
||||
});
|
||||
check = naersk'.buildPackage (nearskOpt // {
|
||||
mode = "check";
|
||||
});
|
||||
clippy = naersk'.buildPackage (nearskOpt // {
|
||||
mode = "clippy";
|
||||
});
|
||||
default = palantir;
|
||||
};
|
||||
|
||||
# `nix run`
|
||||
apps.palantir = utils.lib.mkApp {
|
||||
drv = packages.palantir;
|
||||
};
|
||||
defaultApp = apps.palantir;
|
||||
|
||||
inherit targets;
|
||||
|
||||
# `nix develop`
|
||||
devShell = pkgs.mkShell {
|
||||
devShells.default = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [
|
||||
toolchain
|
||||
bacon
|
||||
|
|
|
|||
|
|
@ -105,5 +105,5 @@ pub async fn stat(docker: Docker) -> Result<impl Stream<Item = Container>> {
|
|||
}
|
||||
})
|
||||
.collect::<FuturesUnordered<_>>()
|
||||
.filter_map(|opt| ready(opt)))
|
||||
.filter_map(ready))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,10 +126,12 @@ impl Iterator for DiskUsageParser<'_> {
|
|||
return None;
|
||||
}
|
||||
let mount_point = parts.next()?;
|
||||
let stat = match statvfs(&mount_point) {
|
||||
let stat = match statvfs(mount_point) {
|
||||
Ok(stat) => stat,
|
||||
Err(e) => return Some(Err(e)),
|
||||
};
|
||||
// cast is needed on 32bit platforms
|
||||
#[allow(clippy::unnecessary_cast)]
|
||||
Some(Ok(DiskUsage {
|
||||
name: mount_point.to_string(),
|
||||
size: stat.f_blocks * stat.f_frsize as u64,
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ pub fn pools() -> impl Iterator<Item = DiskUsage> {
|
|||
|
||||
fn zpool_command() -> Result<String> {
|
||||
let mut z = Command::new("zpool");
|
||||
z.args(&["list", "-p", "-H", "-o", "name,size,free"]);
|
||||
z.args(["list", "-p", "-H", "-o", "name,size,free"]);
|
||||
let out = z.output()?;
|
||||
if out.status.success() {
|
||||
Ok(String::from_utf8(out.stdout)?)
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
|||
let pools = pools();
|
||||
let mut result = String::with_capacity(256);
|
||||
|
||||
cpu.write(&mut result, &hostname);
|
||||
memory.write(&mut result, &hostname);
|
||||
cpu.write(&mut result, hostname);
|
||||
memory.write(&mut result, hostname);
|
||||
|
||||
for pool in pools {
|
||||
writeln!(
|
||||
|
|
@ -78,21 +78,15 @@ pub fn get_metrics(sensors: &Sensors) -> Result<String> {
|
|||
)
|
||||
.ok();
|
||||
}
|
||||
for network in networks {
|
||||
if let Ok(network) = network {
|
||||
network.write(&mut result, &hostname);
|
||||
}
|
||||
for network in networks.flatten() {
|
||||
network.write(&mut result, hostname);
|
||||
}
|
||||
for disk in disks {
|
||||
if let Ok(disk) = disk {
|
||||
disk.write(&mut result, hostname);
|
||||
}
|
||||
for disk in disks.flatten() {
|
||||
disk.write(&mut result, hostname);
|
||||
}
|
||||
|
||||
for disk in disk_usage {
|
||||
if let Ok(disk) = disk {
|
||||
disk.write(&mut result, hostname);
|
||||
}
|
||||
for disk in disk_usage.flatten() {
|
||||
disk.write(&mut result, hostname);
|
||||
}
|
||||
for (label, temp) in temperatures {
|
||||
if temp != 0.0 {
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ async fn setup_mdns(hostname: String, port: u16) {
|
|||
"_prometheus-http._tcp".into(),
|
||||
hostname,
|
||||
port,
|
||||
&[&"/metrics"],
|
||||
&["/metrics"],
|
||||
);
|
||||
|
||||
loop {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue