Skip to content

Commit

Permalink
Update flake.lock, fix errors, get rid of flake-utils
Browse files Browse the repository at this point in the history
  • Loading branch information
yannham committed Jan 10, 2025
1 parent 2bf6c9a commit fa157f9
Show file tree
Hide file tree
Showing 5 changed files with 100 additions and 109 deletions.
59 changes: 10 additions & 49 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

140 changes: 84 additions & 56 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,79 +2,107 @@
inputs = {
crane = {
url = "github:ipetkov/crane";
inputs.nixpkgs.follows = "nixpkgs";
};

nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
nixtract.url = "github:tweag/nixtract";
};

outputs =
{ self
, crane
, nixpkgs
, utils
, nixtract
}:
utils.lib.eachDefaultSystem
(system:
let
pkgs = import nixpkgs { inherit system; };
crane-lib = crane.mkLib nixpkgs.legacyPackages.${system};
cyclonedx = pkgs.cyclonedx-cli;
nixtract-cli = nixtract.defaultPackage.${system};

let
# Matches pkgs.tree-sitter
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"i686-linux"
"x86_64-darwin"
"x86_64-linux"
];

pkgsFor = nixpkgs.lib.genAttrs supportedSystems (system: import nixpkgs {
inherit system;
});

forAllSystems = fn: nixpkgs.lib.genAttrs supportedSystems (system: fn rec {
inherit system;
pkgs = pkgsFor.${system};
inherit (pkgs) lib;
});

mkGenealogosArtifacts = pkgs: rec {
crane-lib = crane.mkLib nixpkgs.legacyPackages.${pkgs.system};
nixtract-cli = nixtract.defaultPackage.${pkgs.system};
crane-outputs = import ./nix/crane.nix {
inherit pkgs crane-lib nixtract-cli cyclonedx;
inherit pkgs crane-lib nixtract-cli;
inherit (pkgs) cyclonedx-cli;
};
tmp = pkgs.runCommand "tmp" { } ''
mkdir $out
mkdir -m 1777 $out/tmp
'';
dockerImage = pkgs.dockerTools.buildLayeredImageWithNixDb {
name = "genealogos";
tag = "latest";
contents = [ crane-outputs.packages.genealogos-api tmp ];
config = {
EntryPoint = [ "genealogos-api" ];
ExposedPorts."8000" = {};
Env = [
"ROCKET_ADDRESS=0.0.0.0"
"ROCKET_PORT=8000"
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
];
};
};
in
rec {
inherit (crane-outputs) checks;
packages = crane-outputs.packages // {
inherit dockerImage;
};
overlays.default = import ./nix/overlays.nix {
inherit crane-lib;
};
nixosModules.default = import ./nix/genealogos-module.nix { inherit (crane-outputs.packages) genealogos-api; };
nixosConfigurations.genealogos-test = nixpkgs.lib.nixosSystem
{
inherit system;
modules = [
./nix/configuration.nix
nixosModules.default
];
};
in

{
overlays.default = import ./nix/overlays.nix {
inherit crane;
};

nixosModules.default = import ./nix/genealogos-module.nix { inherit mkGenealogosArtifacts; };

packages = forAllSystems ({ system, pkgs, ... }:
let artifacts = mkGenealogosArtifacts pkgs; in
let
tmp = pkgs.runCommand "tmp" { } ''
mkdir $out
mkdir -m 1777 $out/tmp
'';
in
artifacts.crane-outputs.packages // {
dockerImage = pkgs.dockerTools.buildLayeredImageWithNixDb {
name = "genealogos";
tag = "latest";
contents = [ artifacts.crane-outputs.packages.genealogos-api tmp ];
config = {
EntryPoint = [ "genealogos-api" ];
ExposedPorts."8000" = { };
Env = [
"ROCKET_ADDRESS=0.0.0.0"
"ROCKET_PORT=8000"
"SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt"
];
};
};
}
);

apps.default = utils.lib.mkApp {
drv = crane-outputs.packages.genealogos-cli;
};
checks = forAllSystems ({ system, pkgs, ... }:
let artifacts = mkGenealogosArtifacts pkgs; in
artifacts.crane-outputs.checks
);

devShells.default = crane-lib.devShell {
inherit (crane-outputs) checks;
apps = forAllSystems ({ system, pkgs, ... }:
let artifacts = mkGenealogosArtifacts pkgs; in
{
default = {
type = "app";
program =
artifacts.crane-outputs.packages.genealogos-cli.passthru.exePath;
};
});

packages = with pkgs; [
rust-analyzer
];
};
});
devShells = forAllSystems ({ system, pkgs, ... }:
let artifacts = mkGenealogosArtifacts pkgs; in
{
default = artifacts.crane-lib.devShell {
inherit (artifacts.crane-outputs) checks;

packages = with pkgs; [
rust-analyzer
];
};
});
};
}
4 changes: 2 additions & 2 deletions nix/crane.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{ pkgs
, crane-lib
, nixtract-cli ? null
, cyclonedx ? null
, cyclonedx-cli ? null
}:
let
common-crane-args = {
Expand Down Expand Up @@ -93,7 +93,7 @@ rec {
};
verify-fixture-files = pkgs.writeShellApplication {
name = "verify-fixture-files";
runtimeInputs = [ cyclonedx ];
runtimeInputs = [ cyclonedx-cli ];
text = builtins.readFile ../scripts/verify-fixture-files.sh;
};
};
Expand Down
3 changes: 2 additions & 1 deletion nix/genealogos-module.nix
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{ genealogos-api }:
{ mkGenealogosArtifacts }:
{ config, lib, pkgs, ... }:

with lib;

let
cfg = config.services.genealogos;
rocketConfigFormat = pkgs.formats.toml { };
genealogos-api = (mkGenealogosArtifacts pkgs).crane-outputs.packages.genealogos-api;
in
{
options = {
Expand Down
3 changes: 2 additions & 1 deletion nix/overlays.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{ crane-lib }:
{ crane }:
final: prev:
let
crane-lib = crane.mkLib prev;
crane-outputs = import ./crane.nix { pkgs = prev; inherit crane-lib; };
in
{
Expand Down

0 comments on commit fa157f9

Please sign in to comment.