Merge pull request #7 from fzakaria/check-local-index

This commit is contained in:
Artturi 2022-01-02 19:11:11 +02:00 committed by GitHub
commit cc48cc9b40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 11 deletions

9
,
View File

@ -18,6 +18,13 @@ else
install=""
fi
# if a nix-index exists locally; use that as it's likely much more recent
# than the prebuilt one.
database=$PREBUILT_NIX_INDEX_DB
if [ -f "${HOME}/.cache/nix-index/files" ]; then
database="${HOME}/.cache/nix-index"
fi
argv0=$1; shift
case "${argv0}" in
@ -25,7 +32,7 @@ case "${argv0}" in
attr="${argv0}"
;;
*)
attr="$(nix-locate --db "${NIX_INDEX_DB}" --top-level --minimal --at-root --whole-name "/bin/${argv0}")"
attr="$(nix-locate --db "${database}" --top-level --minimal --at-root --whole-name "/bin/${argv0}")"
if [[ "$(echo "${attr}" | wc -l)" -ne 1 ]]; then
attr="$(echo "${attr}" | fzy)"
fi

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# ignore nix-build result folder
result

View File

@ -8,6 +8,7 @@
, fzy ? pkgs.fzy
, makeWrapper ? pkgs.makeWrapper
, runCommand ? pkgs.runCommand
, linkFarm ? pkgs.linkFarm
# We use this to add matchers for stuff that's not in upstream nixpkgs, but is
# in our own overlay. No fuzzy matching from multiple options here, it's just:
@ -27,19 +28,17 @@ let
# nix-locate needs the --db argument to be a directory containing a file
# named "files".
nixIndexDB = runCommand "nix-index-cache" {} ''
mkdir $out
ln -s ${indexCache.out} $out/files
'';
nixIndexDB = linkFarm "nix-index-cache" [
{ name = "files"; path = indexCache; }
];
in
stdenv.mkDerivation rec {
name = "comma";
src = ./.;
buildInputs = [ nix-index.out nix.out fzy.out ];
buildInputs = [ nix-index nix fzy ];
nativeBuildInputs = [ makeWrapper ];
installPhase = let
@ -49,10 +48,10 @@ stdenv.mkDerivation rec {
sed -e 's/@OVERLAY_PACKAGES@/${caseCondition}/' < , > $out/bin/,
chmod +x $out/bin/,
wrapProgram $out/bin/, \
--set NIX_INDEX_DB ${nixIndexDB.out} \
--prefix PATH : ${nix-index.out}/bin \
--prefix PATH : ${nix.out}/bin \
--prefix PATH : ${fzy.out}/bin
--set PREBUILT_NIX_INDEX_DB ${nixIndexDB} \
--prefix PATH : ${nix-index}/bin \
--prefix PATH : ${nix}/bin \
--prefix PATH : ${fzy}/bin
ln -s $out/bin/, $out/bin/comma
'';