diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-02-16 18:32:21 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-02-16 18:32:21 +0000 |
commit | 9becdcc5df71b47a5da84ad670e9a7eae9e0c65a (patch) | |
tree | 2ddf0335eb393f89501e3753b50c3f7ab0552d12 /nixpkgs/pkgs/shells/fish | |
parent | 49f2a77ac9abc88c253f68952eda26557fc3b555 (diff) | |
parent | ff96a0fa5635770390b184ae74debea75c3fd534 (diff) | |
download | nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.gz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.bz2 nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.lz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.xz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.zst nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.zip |
nixpkgs: merge nixos-unstable
Diffstat (limited to 'nixpkgs/pkgs/shells/fish')
-rw-r--r-- | nixpkgs/pkgs/shells/fish/babelfish.nix | 8 | ||||
-rw-r--r-- | nixpkgs/pkgs/shells/fish/default.nix | 32 |
2 files changed, 35 insertions, 5 deletions
diff --git a/nixpkgs/pkgs/shells/fish/babelfish.nix b/nixpkgs/pkgs/shells/fish/babelfish.nix index c23e0b1ca923..fb938b8f37de 100644 --- a/nixpkgs/pkgs/shells/fish/babelfish.nix +++ b/nixpkgs/pkgs/shells/fish/babelfish.nix @@ -1,16 +1,16 @@ -{ lib, stdenv, buildGoModule, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub }: buildGoModule rec { pname = "babelfish"; - version = "1.0.1"; + version = "1.1.0"; src = fetchFromGitHub { owner = "bouk"; repo = "babelfish"; rev = "v${version}"; - sha256 = "1sr6y79igyfc9ia33nyrjjm4my1jrpcw27iks37kygh93npsb3r1"; + sha256 = "0b1knj9llwzwnl4w3d6akvlc57dp0fszjkq98w8wybcvkbpd3ip1"; }; - vendorSha256 = "0xjy50wciw329kq1nkd7hhaipcp4fy28hhk6cdq21qwid6g21gag"; + vendorSha256 = "0kspqwbgiqfkfj9a9pdwzc0jdi9p35abqqqjhcpvqwdxw378w5lz"; meta = with lib; { description = "Translate bash scripts to fish"; diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix index a39a2fc740bd..7e38d9dec3a1 100644 --- a/nixpkgs/pkgs/shells/fish/default.nix +++ b/nixpkgs/pkgs/shells/fish/default.nix @@ -16,11 +16,21 @@ , ncurses , python3 , cmake +, fishPlugins , runCommand , writeText , nixosTests , useOperatingSystemEtc ? true + # An optional string containing Fish code that initializes the environment. + # This is run at the very beginning of initialization. If it sets $NIX_PROFILES + # then Fish will use that to configure its function, completion, and conf.d paths. + # For example: + # fishEnvPreInit = "source /etc/fish/my-env-preinit.fish"; + # It can also be a function that takes one argument, which is a function that + # takes a path to a bash file and converts it to fish. For example: + # fishEnvPreInit = source: source "${nix}/etc/profile.d/nix-daemon.sh"; +, fishEnvPreInit ? null }: let etcConfigAppendix = writeText "config.fish.appendix" '' @@ -62,8 +72,12 @@ let # 2. Before the shell is initialized, so that config snippets can find the commands they use on the PATH builtin status --is-login or test -z "$__fish_nixos_env_preinit_sourced" -a -z "$ETC_PROFILE_SOURCED" -a -z "$ETC_ZSHENV_SOURCED" + ${if fishEnvPreInit != null then '' + and begin + ${lib.removeSuffix "\n" (if lib.isFunction fishEnvPreInit then fishEnvPreInit sourceWithFenv else fishEnvPreInit)} + end'' else '' and test -f /etc/fish/nixos-env-preinit.fish - and source /etc/fish/nixos-env-preinit.fish + and source /etc/fish/nixos-env-preinit.fish''} and set -gx __fish_nixos_env_preinit_sourced 1 test -n "$NIX_PROFILES" @@ -94,6 +108,22 @@ let end ''; + # This is wrapped in begin/end in case the user wants to apply redirections. + # This does mean the basic usage of sourcing a single file will produce + # `begin; begin; …; end; end` but that's ok. + sourceWithFenv = path: '' + begin # fenv + # This happens before $__fish_datadir/config.fish sets fish_function_path, so it is currently + # unset. We set it and then completely erase it, leaving its configuration to $__fish_datadir/config.fish + set fish_function_path ${fishPlugins.foreign-env}/share/fish/vendor_functions.d $__fish_datadir/functions + fenv source ${lib.escapeShellArg path} + set -l fenv_status $status + # clear fish_function_path so that it will be correctly set when we return to $__fish_datadir/config.fish + set -e fish_function_path + test $fenv_status -eq 0 + end # fenv + ''; + fish = stdenv.mkDerivation rec { pname = "fish"; version = "3.1.2"; |