62 lines
2.2 KiB
Nix
62 lines
2.2 KiB
Nix
{
|
|
description = "CLI tool to easily setup a new resume";
|
|
|
|
inputs = {
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
resume-cli = {
|
|
url = "github:jsonresume/resume-cli/7fb40dab8ca6aa519bd3c4ac2729b9fa4256cdcb";
|
|
flake = false;
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# be careful when updating nixpkgs, resume-cli depends on the chromium ABI
|
|
nixpkgs.url = "nixpkgs/20.09";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, resume-cli, flake-utils }:
|
|
let
|
|
forPkgs = pkgs:
|
|
let
|
|
dbg = pkgs.lib.traceVal;
|
|
nixifiedSrc =
|
|
(pkgs.runCommandLocal "node2nix-merge" { buildInputs = [ pkgs.nodePackages.node2nix ]; } ''
|
|
mkdir -p $out
|
|
cp -r ${resume-cli}/* $out
|
|
cd $out
|
|
node2nix --input package.json --lock package-lock.json
|
|
''
|
|
);
|
|
nodePackages = pkgs.callPackage "${nixifiedSrc}" { inherit pkgs; system = pkgs.system; };
|
|
override = nodePackages // {
|
|
package = nodePackages.package.override {
|
|
PUPPETEER_SKIP_DOWNLOAD = 1;
|
|
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD = 1;
|
|
buildInputs = [ pkgs.chromium ];
|
|
nativeBuildInputs = [ pkgs.makeWrapper ];
|
|
postInstall = ''
|
|
wrapProgram $out/bin/resume \
|
|
--set PUPPETEER_EXECUTABLE_PATH ${pkgs.chromium.outPath}/bin/chromium
|
|
'';
|
|
};
|
|
};
|
|
in
|
|
rec {
|
|
packages.resume-cli = override.package;
|
|
defaultPackage = packages.resume-cli;
|
|
apps.resume-cli = flake-utils.lib.mkApp { drv = defaultPackage; exePath = "/bin/resume"; };
|
|
defaultApp = apps.resume-cli;
|
|
devShell = with pkgs; mkShell {
|
|
buildInputs = [ nodejs packages.resume-cli ];
|
|
};
|
|
checks.resume-cli = pkgs.runCommandLocal "resume-cli-test" { buildInputs = [ packages.resume-cli ]; } ''
|
|
resume --help
|
|
touch $out
|
|
'';
|
|
};
|
|
forSystem = system: forPkgs (import nixpkgs { inherit system; });
|
|
in
|
|
(flake-utils.lib.eachSystem [ "x86_64-linux" ] forSystem) // {
|
|
overlay = final: prev: (forPkgs final).packages;
|
|
};
|
|
}
|