123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- {
- description = "Elvish configuration";
- outputs = { self, nixpkgs }:
- {
- packages.x86_64-linux.default =
- with import nixpkgs {
- system = "x86_64-linux";
- };
- let
- carapace-bin = buildGoModule rec {
- pname = "carapace-bin";
- version = "0.15.0";
- src = fetchFromGitHub {
- owner = "rsteube";
- repo = "carapace-bin";
- rev = "v${version}";
- sha256 = "0lnsrma6f6s25j21gyn56bsh3yfagb50xsw10sgsw6iczc8ri5fx";
- };
- ldflags = [ "-s" "-w" ];
- tags = [ "release" ];
- preBuild = ''
- cd cmd/carapace
- go generate ./...
- '';
- vendorSha256 = "sha256-OrbVqCgsVX5b5knN6IdlJBWeGfg2fh09a2xe5+2EGEs=";
- };
- config = runCommand "elvish-config" {
- nativeBuildInputs = [ makeWrapper ];
- } ''
- mkdir -p $out/elvish
- cp -r ${./lib} $out/elvish/lib
- cat <<EOF > $out/elvish/rc.elv
- use config
- eval (carapace _carapace|slurp)
- EOF
- '';
- in
- writeScriptBin "elvish" ''
- #!/bin/sh
- export XDG_DATA_DIRS="$XDG_DATA_DIRS:${config}"
- export PATH="$PATH:${carapace-bin}/bin"
- keyctl new_session >/dev/null
- exec ${elvish}/bin/elvish -rc "${config}/elvish/rc.elv" "$@"
- '';
- };
- }
|