Compare commits
1 Commits
main
...
00d04c73f6
Author | SHA1 | Date | |
---|---|---|---|
00d04c73f6
|
12
flake.lock
generated
12
flake.lock
generated
@@ -2,11 +2,11 @@
|
|||||||
"nodes": {
|
"nodes": {
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758427187,
|
"lastModified": 1754725699,
|
||||||
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
|
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
|
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -29,11 +29,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1758206697,
|
"lastModified": 1754847726,
|
||||||
"narHash": "sha256-/DbPkh6PZOgfueCbs3uzlk4ASU2nPPsiVWhpMCNkAd0=",
|
"narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "treefmt-nix",
|
"repo": "treefmt-nix",
|
||||||
"rev": "128222dc911b8e2e18939537bed1762b7f3a04aa",
|
"rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
20
flake.nix
20
flake.nix
@@ -10,34 +10,22 @@
|
|||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
inputs:
|
inputs:
|
||||||
{
|
(
|
||||||
overlays.default = import ./overlays;
|
|
||||||
}
|
|
||||||
// (
|
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
||||||
pkgs = import inputs.nixpkgs {
|
pkgs = import inputs.nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
overlays = [ inputs.self.overlays.default ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
treefmt = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
|
treefmt = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
packages.${system} = import ./packages { inherit pkgs; };
|
lib.${system} = import ./lib { inherit pkgs; };
|
||||||
|
|
||||||
formatter.${system} = treefmt.config.build.wrapper;
|
formatter.${system} = treefmt.config.build.wrapper;
|
||||||
|
checks.${system}.formatting = treefmt.config.build.check inputs.self;
|
||||||
checks.${system} =
|
|
||||||
let
|
|
||||||
packages = pkgs.lib.mapAttrs' (
|
|
||||||
n: pkgs.lib.nameValuePair "package-${n}"
|
|
||||||
) inputs.self.packages.${system};
|
|
||||||
|
|
||||||
formatter.formatting = treefmt.config.build.check inputs.self;
|
|
||||||
in
|
|
||||||
packages // formatter;
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
8
lib/default.nix
Normal file
8
lib/default.nix
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
fetchers = callPackage ./fetchers { };
|
||||||
|
runtime = callPackage ./runtime { };
|
||||||
|
}
|
7
lib/fetchers/default.nix
Normal file
7
lib/fetchers/default.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
sshKnownHosts = callPackage ./sshKnownHosts { };
|
||||||
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
final: prev:
|
{ pkgs, ... }:
|
||||||
prev.lib.fetchers.withNormalizedHash { } (
|
pkgs.lib.fetchers.withNormalizedHash { } (
|
||||||
{
|
{
|
||||||
host,
|
host,
|
||||||
name ? "ssh-known-hosts-${host}",
|
name ? "ssh-known-hosts-${host}",
|
||||||
@@ -13,15 +13,15 @@ prev.lib.fetchers.withNormalizedHash { } (
|
|||||||
],
|
],
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
keyTypeArgs = prev.lib.concatStringsSep "," keyTypes;
|
keyTypeArgs = pkgs.lib.concatStringsSep "," keyTypes;
|
||||||
in
|
in
|
||||||
prev.runCommandLocal name
|
pkgs.runCommandLocal name
|
||||||
{
|
{
|
||||||
inherit outputHash outputHashAlgo;
|
inherit outputHash outputHashAlgo;
|
||||||
outputHashMode = "flat";
|
outputHashMode = "flat";
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
|
|
||||||
nativeBuildInputs = with final; [
|
nativeBuildInputs = with pkgs; [
|
||||||
openssh
|
openssh
|
||||||
gnugrep
|
gnugrep
|
||||||
coreutils
|
coreutils
|
7
lib/runtime/default.nix
Normal file
7
lib/runtime/default.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
merge = callPackage ./merge { };
|
||||||
|
}
|
7
lib/runtime/merge/default.nix
Normal file
7
lib/runtime/merge/default.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
keyValue = callPackage ./keyValue { };
|
||||||
|
}
|
@@ -1,8 +1,8 @@
|
|||||||
final: prev:
|
{ pkgs, ... }:
|
||||||
"${
|
"${
|
||||||
prev.writeShellApplication {
|
pkgs.writeShellApplication {
|
||||||
name = "merge-key-value";
|
name = "merge-key-value";
|
||||||
runtimeInputs = with final; [
|
runtimeInputs = with pkgs; [
|
||||||
coreutils
|
coreutils
|
||||||
gawk
|
gawk
|
||||||
];
|
];
|
@@ -1,20 +0,0 @@
|
|||||||
final: prev:
|
|
||||||
{
|
|
||||||
lib = prev.lib.recursiveUpdate prev.lib {
|
|
||||||
fetchers = {
|
|
||||||
sshKnownHosts = import ./fetchers/sshKnownHosts final prev;
|
|
||||||
};
|
|
||||||
|
|
||||||
runtime = {
|
|
||||||
merge = {
|
|
||||||
keyValue = import ./runtime/merge/keyValue final prev;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
// (import ../packages { pkgs = final; })
|
|
||||||
// {
|
|
||||||
dockerImages = prev.dockerImages or { } // {
|
|
||||||
base = final.docker-image-base;
|
|
||||||
};
|
|
||||||
}
|
|
@@ -1,4 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
docker-image-base = import ./docker/base { inherit pkgs; };
|
|
||||||
}
|
|
@@ -1,27 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
pkgs.dockerTools.buildImage {
|
|
||||||
name = "base";
|
|
||||||
|
|
||||||
copyToRoot = pkgs.buildEnv {
|
|
||||||
name = "root";
|
|
||||||
paths = with pkgs; [
|
|
||||||
dockerTools.usrBinEnv
|
|
||||||
dockerTools.binSh
|
|
||||||
dockerTools.caCertificates
|
|
||||||
bashInteractive
|
|
||||||
busybox
|
|
||||||
];
|
|
||||||
pathsToLink = [
|
|
||||||
"/bin"
|
|
||||||
"/lib"
|
|
||||||
"/share"
|
|
||||||
"/etc"
|
|
||||||
"/usr"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
runAsRoot = ''
|
|
||||||
${pkgs.dockerTools.shadowSetup}
|
|
||||||
mkdir -p /tmp
|
|
||||||
'';
|
|
||||||
}
|
|
Reference in New Issue
Block a user