diff --git a/pkgs/tools/package-management/comma/default.nix b/pkgs/tools/package-management/comma/default.nix new file mode 100644 index 00000000000..1cd8ac8ccd4 --- /dev/null +++ b/pkgs/tools/package-management/comma/default.nix @@ -0,0 +1,55 @@ +{ lib +, stdenv +, fetchurl +, fetchFromGitHub +, linkFarm +, nix-index +, fzy +}: + +let + + # nix-index takes a little while to run and the contents don't change + # meaningfully very often. + indexCache = fetchurl { + url = "https://github.com/Mic92/nix-index-database/releases/download/2021-12-12/index-x86_64-linux"; + sha256 = "sha256-+SoG5Qz2KWA/nIWXE6SLpdi8MDqTs8LY90fGZxGKOiA="; + }; + + # nix-locate needs the --db argument to be a directory containing a file + # named "files". + nixIndexDB = linkFarm "nix-index-cache" [ + { name = "files"; path = indexCache; } + ]; + +in stdenv.mkDerivation rec { + pname = "comma"; + version = "1.1.0"; + + src = fetchFromGitHub { + owner = "nix-community"; + repo = pname; + rev = version; + sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E="; + }; + + postPatch = '' + substituteInPlace , \ + --replace '$PREBUILT_NIX_INDEX_DB' "${nixIndexDB}" \ + --replace nix-locate "${nix-index}/bin/nix-locate" \ + --replace fzy "${fzy}/bin/fzy" + ''; + + installPhase = '' + install -Dm755 , -t $out/bin + ln -s $out/bin/, $out/bin/comma + ''; + + meta = with lib; { + homepage = "https://github.com/nix-community/comma"; + description = "Run software without installing it"; + license = licenses.mit; + maintainers = with maintainers; [ Enzime ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ad004b1d741..97721617ba0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2554,6 +2554,8 @@ with pkgs; cz-cli = callPackage ../applications/version-management/cz-cli {}; + comma = callPackage ../tools/package-management/comma { }; + common-licenses = callPackage ../data/misc/common-licenses {}; compactor = callPackage ../applications/networking/compactor { };