mirror of
https://codeberg.org/icewind/logsmash.git
synced 2026-06-03 18:14:11 +02:00
nix setup
This commit is contained in:
parent
a64225eda6
commit
20464a8f68
8 changed files with 46 additions and 140 deletions
|
|
@ -2,6 +2,5 @@
|
||||||
name = "cloud-log-analyser"
|
name = "cloud-log-analyser"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.66.0"
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
24
flake.nix
24
flake.nix
|
|
@ -6,7 +6,6 @@
|
||||||
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
rust-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
rust-overlay.inputs.flake-utils.follows = "flake-utils";
|
|
||||||
cross-naersk.url = "github:icewind1991/cross-naersk";
|
cross-naersk.url = "github:icewind1991/cross-naersk";
|
||||||
cross-naersk.inputs.nixpkgs.follows = "nixpkgs";
|
cross-naersk.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
cross-naersk.inputs.naersk.follows = "naersk";
|
cross-naersk.inputs.naersk.follows = "naersk";
|
||||||
|
|
@ -24,7 +23,7 @@
|
||||||
system: let
|
system: let
|
||||||
overlays = [
|
overlays = [
|
||||||
(import rust-overlay)
|
(import rust-overlay)
|
||||||
(import ./overlay.nix)
|
(import ./nix/overlay.nix)
|
||||||
];
|
];
|
||||||
pkgs = (import nixpkgs) {
|
pkgs = (import nixpkgs) {
|
||||||
inherit system overlays;
|
inherit system overlays;
|
||||||
|
|
@ -34,8 +33,10 @@
|
||||||
inherit (builtins) fromTOML readFile map;
|
inherit (builtins) fromTOML readFile map;
|
||||||
|
|
||||||
msrv = (fromTOML (readFile ./Cargo.toml)).package.rust-version;
|
msrv = (fromTOML (readFile ./Cargo.toml)).package.rust-version;
|
||||||
|
extractorMsrv = (fromTOML (readFile ./logging-extractor/Cargo.toml)).package.rust-version;
|
||||||
toolchain = rust-bin.stable.latest.default;
|
toolchain = rust-bin.stable.latest.default;
|
||||||
msrvToolchain = rust-bin.stable."${msrv}".default;
|
msrvToolchain = rust-bin.stable."${msrv}".default;
|
||||||
|
extractorMsrvToolchain = rust-bin.stable."${extractorMsrv}".default;
|
||||||
|
|
||||||
naersk' = callPackage naersk {
|
naersk' = callPackage naersk {
|
||||||
rustc = toolchain;
|
rustc = toolchain;
|
||||||
|
|
@ -45,6 +46,10 @@
|
||||||
rustc = msrvToolchain;
|
rustc = msrvToolchain;
|
||||||
cargo = msrvToolchain;
|
cargo = msrvToolchain;
|
||||||
};
|
};
|
||||||
|
extractorMsrvNaersk = callPackage naersk {
|
||||||
|
rustc = extractorMsrvToolchain;
|
||||||
|
cargo = extractorMsrvToolchain;
|
||||||
|
};
|
||||||
cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;};
|
cross-naersk' = pkgs.callPackage cross-naersk {inherit naersk;};
|
||||||
|
|
||||||
buildMatrix = targets: {
|
buildMatrix = targets: {
|
||||||
|
|
@ -65,6 +70,7 @@
|
||||||
releaseTargets = lib.lists.remove hostTarget targets;
|
releaseTargets = lib.lists.remove hostTarget targets;
|
||||||
|
|
||||||
src = sourceByRegex ./. ["Cargo.*" "(src)(/.*)?"];
|
src = sourceByRegex ./. ["Cargo.*" "(src)(/.*)?"];
|
||||||
|
extractorSrc = sourceByRegex ./logging-extractor ["Cargo.*" "(src)(/.*)?"];
|
||||||
nearskOpt = {
|
nearskOpt = {
|
||||||
pname = "cloud-log-analyser";
|
pname = "cloud-log-analyser";
|
||||||
root = src;
|
root = src;
|
||||||
|
|
@ -74,11 +80,16 @@
|
||||||
lib.attrsets.genAttrs targets (target:
|
lib.attrsets.genAttrs targets (target:
|
||||||
(cross-naersk'.buildPackage target) nearskOpt)
|
(cross-naersk'.buildPackage target) nearskOpt)
|
||||||
// {
|
// {
|
||||||
shelve = pkgs.shelve;
|
inherit (pkgs) logging-extractor;
|
||||||
check = naersk'.buildPackage (nearskOpt
|
check = naersk'.buildPackage (nearskOpt
|
||||||
// {
|
// {
|
||||||
mode = "check";
|
mode = "check";
|
||||||
});
|
});
|
||||||
|
checkExtractor = naersk'.buildPackage (nearskOpt
|
||||||
|
// {
|
||||||
|
mode = "check";
|
||||||
|
root = extractorSrc;
|
||||||
|
});
|
||||||
clippy = naersk'.buildPackage (nearskOpt
|
clippy = naersk'.buildPackage (nearskOpt
|
||||||
// {
|
// {
|
||||||
mode = "clippy";
|
mode = "clippy";
|
||||||
|
|
@ -87,6 +98,11 @@
|
||||||
// {
|
// {
|
||||||
mode = "check";
|
mode = "check";
|
||||||
});
|
});
|
||||||
|
extractorMsrv = extractorMsrvNaersk.buildPackage (nearskOpt
|
||||||
|
// {
|
||||||
|
mode = "check";
|
||||||
|
root = extractorSrc;
|
||||||
|
});
|
||||||
default = pkgs.shelve;
|
default = pkgs.shelve;
|
||||||
};
|
};
|
||||||
apps.default = packages.default;
|
apps.default = packages.default;
|
||||||
|
|
@ -100,6 +116,6 @@
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
// {
|
// {
|
||||||
overlays.default = import ./overlay.nix;
|
overlays.default = import ./nix/overlay.nix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
120
logging-extractor/Cargo.lock
generated
120
logging-extractor/Cargo.lock
generated
|
|
@ -11,55 +11,6 @@ dependencies = [
|
||||||
"memchr",
|
"memchr",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstream"
|
|
||||||
version = "0.6.14"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b"
|
|
||||||
dependencies = [
|
|
||||||
"anstyle",
|
|
||||||
"anstyle-parse",
|
|
||||||
"anstyle-query",
|
|
||||||
"anstyle-wincon",
|
|
||||||
"colorchoice",
|
|
||||||
"is_terminal_polyfill",
|
|
||||||
"utf8parse",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle"
|
|
||||||
version = "1.0.7"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-parse"
|
|
||||||
version = "0.2.4"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4"
|
|
||||||
dependencies = [
|
|
||||||
"utf8parse",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-query"
|
|
||||||
version = "1.1.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391"
|
|
||||||
dependencies = [
|
|
||||||
"windows-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "anstyle-wincon"
|
|
||||||
version = "3.0.3"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19"
|
|
||||||
dependencies = [
|
|
||||||
"anstyle",
|
|
||||||
"windows-sys",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.1.6"
|
version = "1.1.6"
|
||||||
|
|
@ -72,52 +23,6 @@ version = "1.0.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap"
|
|
||||||
version = "4.5.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462"
|
|
||||||
dependencies = [
|
|
||||||
"clap_builder",
|
|
||||||
"clap_derive",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_builder"
|
|
||||||
version = "4.5.9"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942"
|
|
||||||
dependencies = [
|
|
||||||
"anstream",
|
|
||||||
"anstyle",
|
|
||||||
"clap_lex",
|
|
||||||
"strsim",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_derive"
|
|
||||||
version = "4.5.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085"
|
|
||||||
dependencies = [
|
|
||||||
"heck",
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "clap_lex"
|
|
||||||
version = "0.7.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70"
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "colorchoice"
|
|
||||||
version = "1.0.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "console"
|
name = "console"
|
||||||
version = "0.15.8"
|
version = "0.15.8"
|
||||||
|
|
@ -136,12 +41,6 @@ version = "0.3.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
|
checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "heck"
|
|
||||||
version = "0.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "insta"
|
name = "insta"
|
||||||
version = "1.39.0"
|
version = "1.39.0"
|
||||||
|
|
@ -155,12 +54,6 @@ dependencies = [
|
||||||
"similar",
|
"similar",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "is_terminal_polyfill"
|
|
||||||
version = "1.70.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "itoa"
|
name = "itoa"
|
||||||
version = "1.0.11"
|
version = "1.0.11"
|
||||||
|
|
@ -196,7 +89,6 @@ name = "logging-extractor"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"clap",
|
|
||||||
"insta",
|
"insta",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
|
|
@ -357,12 +249,6 @@ version = "1.13.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "strsim"
|
|
||||||
version = "0.11.1"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "2.0.71"
|
version = "2.0.71"
|
||||||
|
|
@ -520,12 +406,6 @@ version = "1.0.12"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "utf8parse"
|
|
||||||
version = "0.2.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "valuable"
|
name = "valuable"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
name = "logging-extractor"
|
name = "logging-extractor"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.66.0"
|
rust-version = "1.66.1"
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
|
|
||||||
|
|
@ -13,7 +13,6 @@ name = "logging-extractor"
|
||||||
tracing = "0.1.40"
|
tracing = "0.1.40"
|
||||||
tracing-subscriber = "0.3.18"
|
tracing-subscriber = "0.3.18"
|
||||||
thiserror = "1.0.63"
|
thiserror = "1.0.63"
|
||||||
clap = { version = "4.5.9", features = ["derive"] }
|
|
||||||
serde = { version = "1.0.204", features = ["derive"] }
|
serde = { version = "1.0.204", features = ["derive"] }
|
||||||
serde_json = "1.0.120"
|
serde_json = "1.0.120"
|
||||||
walkdir = "2.5.0"
|
walkdir = "2.5.0"
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,13 @@
|
||||||
use clap::Parser;
|
|
||||||
use logging_extractor::error::Error;
|
use logging_extractor::error::Error;
|
||||||
use logging_extractor::extract_dir;
|
use logging_extractor::extract_dir;
|
||||||
|
use std::env::args;
|
||||||
use std::fs::canonicalize;
|
use std::fs::canonicalize;
|
||||||
use std::io::stdout;
|
use std::io::stdout;
|
||||||
use std::path::PathBuf;
|
|
||||||
|
|
||||||
#[derive(Parser, Debug)]
|
|
||||||
struct Args {
|
|
||||||
root: PathBuf,
|
|
||||||
}
|
|
||||||
|
|
||||||
fn main() -> Result<(), Error> {
|
fn main() -> Result<(), Error> {
|
||||||
let args = Args::parse();
|
let root = args().nth(1).expect("no root provided");
|
||||||
let root = canonicalize(&args.root).map_err(|err| Error::RealPath {
|
let root = canonicalize(&root).map_err(|err| Error::RealPath {
|
||||||
path: args.root,
|
path: root.into(),
|
||||||
err,
|
err,
|
||||||
})?;
|
})?;
|
||||||
let root = root.to_str().expect("non utf8 root path");
|
let root = root.to_str().expect("non utf8 root path");
|
||||||
|
|
|
||||||
18
nix/logging-extractor.nix
Normal file
18
nix/logging-extractor.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
stdenv,
|
||||||
|
rustPlatform,
|
||||||
|
lib,
|
||||||
|
}: let
|
||||||
|
inherit (lib.sources) sourceByRegex;
|
||||||
|
src = sourceByRegex ../logging-extractor ["Cargo.*" "(src|tests|test-data)(/.*)?"];
|
||||||
|
in
|
||||||
|
rustPlatform.buildRustPackage rec {
|
||||||
|
pname = "logging-extractor";
|
||||||
|
version = "0.1.0";
|
||||||
|
|
||||||
|
inherit src;
|
||||||
|
|
||||||
|
cargoLock = {
|
||||||
|
lockFile = ../logging-extractor/Cargo.lock;
|
||||||
|
};
|
||||||
|
}
|
||||||
3
nix/overlay.nix
Normal file
3
nix/overlay.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
final: prev: {
|
||||||
|
logging-extractor = final.callPackage ./logging-extractor.nix {};
|
||||||
|
}
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
shelve = final.callPackage ./package.nix {};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue