nix-home/overlay.nix

100 lines
3.3 KiB
Nix
Raw Normal View History

2022-07-04 19:41:04 +00:00
{ nixpkgs, nixpkgs-unstable, nur, ... }@inputs:
2021-10-29 17:31:16 +00:00
let
overlay-unstable = final: prev: {
unstable = import nixpkgs-unstable { config.allowUnfree = true; system = prev.system; };
unfree = import nixpkgs { config.allowUnfree = true; system = prev.system; };
2022-07-04 19:41:04 +00:00
x86 = import nixpkgs-unstable { system = prev.system; config.allowUnsupportedSystem = true; };
2021-10-29 17:31:16 +00:00
};
overlay-needs-unstable = final: prev: {
# override some packages that needs unstable that cannot be changed in the setup.
nix-direnv = prev.unstable.nix-direnv;
};
overlay-imported = final: prev: {
2022-07-04 19:41:04 +00:00
rnix-lsp = inputs.rnix-lsp.defaultPackage."${prev.system}";
# A list of source-style inputs.
sources = final.lib.attrsets.filterAttrs (name: f: !(builtins.hasAttr "outputs" f)) inputs;
2021-10-29 17:31:16 +00:00
};
overlay-versioning = final: prev: {
broot = (with final; rustPlatform.buildRustPackage rec {
pname = "broot";
version = "1.14.1";
src = fetchCrate {
inherit pname version;
sha256 = "sha256-6t2yJM3LAG1LY5MAXg/7lwmufEEO8dqOZJgQXICmLf8=";
};
cargoHash = "sha256-NsKiTsdfC1UPTLKBibVGXSx5wZubAMgIWLiEMzR5p6g=";
nativeBuildInputs = [
installShellFiles
makeWrapper
pkg-config
];
buildInputs = with final; [ libgit2 oniguruma xorg.libxcb ] ++ lib.optionals stdenv.isDarwin (with final; [
libiconv
darwin.apple_sdk.frameworks.Security
zlib
]);
RUSTONIG_SYSTEM_LIBONIG = true;
postPatch = ''
# Fill the version stub in the man page. We can't fill the date
# stub reproducibly.
substitute man/page man/broot.1 \
--replace "#version" "${version}"
'';
postInstall = ''
# Do not nag users about installing shell integration, since
# it is impure.
wrapProgram $out/bin/broot \
--set BR_INSTALL no
# Install shell function for bash.
$out/bin/broot --print-shell-function bash > br.bash
install -Dm0444 -t $out/etc/profile.d br.bash
# Install shell function for zsh.
$out/bin/broot --print-shell-function zsh > br.zsh
install -Dm0444 br.zsh $out/share/zsh/site-functions/br
# Install shell function for fish
$out/bin/broot --print-shell-function fish > br.fish
install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
# install shell completion files
OUT_DIR=$releaseDir/build/broot-*/out
installShellCompletion --bash $OUT_DIR/{br,broot}.bash
installShellCompletion --fish $OUT_DIR/{br,broot}.fish
installShellCompletion --zsh $OUT_DIR/{_br,_broot}
installManPage man/broot.1
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/broot --version | grep "${version}"
'';
meta = with lib; {
description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
homepage = "https://dystroy.org/broot/";
changelog = "https://github.com/Canop/broot/releases/tag/v${version}";
maintainers = with maintainers; [ dywedir ];
license = with licenses; [ mit ];
};
});
};
2021-10-29 17:31:16 +00:00
in
2022-07-04 19:41:04 +00:00
[
(import ./overlays/openrazer)
overlay-unstable
overlay-needs-unstable
overlay-imported
overlay-versioning
2022-07-04 19:41:04 +00:00
nur.overlay
2021-11-29 18:17:20 +00:00
2022-07-04 19:41:04 +00:00
# Bug fixes
] # we assign the overlay created before to the overlays of nixpkgs.
2021-10-29 17:31:16 +00:00