artturin | In reply to @artturin:matrix.org can diffoscope follow symlinks? {
inputs = {
nixpkgs.url = "/home/artturin/nixgits/my-nixpkgs";
nixpkgsUnstable.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = inputs@{ self, nixpkgs, flake-utils, nixpkgsUnstable }:
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = import nixpkgs { inherit system; overlays = [ self.overlay ]; };
in rec {
packages = {
diffscript = pkgs.diffscript;
difffarm = pkgs.difffarm;
};
}) // {
overlay = self: super: {
difffarm = let
in with self; linkFarmFromDrvs "difffarm" [
bash
coreutils
];
crossdifffarm = let
crosspkgs = import nixpkgs { inherit (self) system; crossSystem = nixpkgs.lib.systems.examples.aarch64-multiplatform; };
in with crosspkgs; linkFarmFromDrvs "difffarm" [
bash
coreutils
];
diffscript = let
in with self; stdenvNoCC.mkDerivation rec {
name = "diffscript";
nativeBuildInputs = [ nixpkgsUnstable.legacyPackages.x86_64-linux.diffoscope ];
installPhase = ''
mkdir $out
readlinkOrig=($(readlink ${difffarm}/*))
readlinkCross=($(readlink ${crossdifffarm}/*))
names=($(ls ${difffarm}))
for ((i=0;i<=''${#readlinkOrig[@]};i++)); do
diffoscope "''${readlinkOrig[i]}" "''${readlinkCross[i]}" > $out/''${names[i]} || true
done
'';
dontUnpack = true;
dontPatch = true;
dontConfigure = true;
dontBuild = true;
dontFixup = true;
};
};
};
}
| 16:19:59 |