Compare commits

..

1 Commits

Author SHA1 Message Date
00d04c73f6 Add envrc
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-08-17 12:48:00 +03:00
12 changed files with 47 additions and 81 deletions

12
flake.lock generated
View File

@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1758427187,
"narHash": "sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc=",
"lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "554be6495561ff07b6c724047bdd7e0716aa7b46",
"rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054",
"type": "github"
},
"original": {
@@ -29,11 +29,11 @@
]
},
"locked": {
"lastModified": 1758206697,
"narHash": "sha256-/DbPkh6PZOgfueCbs3uzlk4ASU2nPPsiVWhpMCNkAd0=",
"lastModified": 1754847726,
"narHash": "sha256-2vX8QjO5lRsDbNYvN9hVHXLU6oMl+V/PsmIiJREG4rE=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "128222dc911b8e2e18939537bed1762b7f3a04aa",
"rev": "7d81f6fb2e19bf84f1c65135d1060d829fae2408",
"type": "github"
},
"original": {

View File

@@ -10,34 +10,22 @@
outputs =
inputs:
{
overlays.default = import ./overlays;
}
// (
(
let
system = "x86_64-linux";
pkgs = import inputs.nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [ inputs.self.overlays.default ];
};
treefmt = inputs.treefmt-nix.lib.evalModule pkgs ./treefmt.nix;
in
{
packages.${system} = import ./packages { inherit pkgs; };
lib.${system} = import ./lib { inherit pkgs; };
formatter.${system} = treefmt.config.build.wrapper;
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;
checks.${system}.formatting = treefmt.config.build.check inputs.self;
}
);
}

8
lib/default.nix Normal file
View 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
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
let
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
in
{
sshKnownHosts = callPackage ./sshKnownHosts { };
}

View File

@@ -1,5 +1,5 @@
final: prev:
prev.lib.fetchers.withNormalizedHash { } (
{ pkgs, ... }:
pkgs.lib.fetchers.withNormalizedHash { } (
{
host,
name ? "ssh-known-hosts-${host}",
@@ -13,15 +13,15 @@ prev.lib.fetchers.withNormalizedHash { } (
],
}:
let
keyTypeArgs = prev.lib.concatStringsSep "," keyTypes;
keyTypeArgs = pkgs.lib.concatStringsSep "," keyTypes;
in
prev.runCommandLocal name
pkgs.runCommandLocal name
{
inherit outputHash outputHashAlgo;
outputHashMode = "flat";
preferLocalBuild = true;
nativeBuildInputs = with final; [
nativeBuildInputs = with pkgs; [
openssh
gnugrep
coreutils

7
lib/runtime/default.nix Normal file
View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
let
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
in
{
merge = callPackage ./merge { };
}

View File

@@ -0,0 +1,7 @@
{ pkgs, ... }:
let
callPackage = pkgs.lib.callPackageWith { inherit pkgs; };
in
{
keyValue = callPackage ./keyValue { };
}

View File

@@ -1,8 +1,8 @@
final: prev:
{ pkgs, ... }:
"${
prev.writeShellApplication {
pkgs.writeShellApplication {
name = "merge-key-value";
runtimeInputs = with final; [
runtimeInputs = with pkgs; [
coreutils
gawk
];

View File

@@ -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;
};
}

View File

@@ -1,4 +0,0 @@
{ pkgs, ... }:
{
docker-image-base = import ./docker/base { inherit pkgs; };
}

View File

@@ -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
'';
}