Problemas ao mesclar dois arquivos ponto nix simples para nix-shell

Problemas ao mesclar dois arquivos ponto nix simples para nix-shell

Eu sou novo na expressão nix. Encontrei dois arquivos de configuração que desejo usar no nix-shell.

Infelizmente não consegui mesclá-los devido à minha falta de conhecimento da expressão nix. Sempre acabe com erro de sintaxe.

a.nixé para definir custom shellHook. Aqui simplificado apenas para configurar$PS1

{ pkgs ? import <nixpkgs> {}  }:

with pkgs;

stdenv.mkDerivation {
  name = "python3-shell";
  buildInputs = [ ];

  shellHook = ''
    export PS1="\[\033[1;32m\][nix-shell:\w]\n$ \[\033[0m\]"
  '';
}

b.nixé para substituição de python. Eu preciso disso para fazerjedi-vimtrabalhar.

with import <nixpkgs> {};

( pkgs.python3.buildEnv.override  {
  extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
}).env

Eu entendo a.nixestruturas, mas a sintaxe b.nixé diferente.

Como devo fazer isso?

Existe algum recurso mais simples para estudar além dos nixosmanual?

Responder1

Resolvidocom a seguinte configuração.

{ pkgs ? import <nixpkgs> {} }:

with pkgs;

let py3s = pkgs.python3.buildEnv.override {
  extraLibs = with pkgs.python3Packages; [ jedi pyyaml ];
};
in stdenv.mkDerivation {
  name = "python3-shell";
  buildInputs = [ py3s ];

  shellHook = ''
    export PS1="\[\033[1;32m\][nix-shell:\w]\n$ \[\033[0m\]"
  '';
}

Ainda não entendi completamente o código, mas de alguma forma recebi o prompt do desejo e jedi-vimagora posso veryaml

insira a descrição da imagem aqui

informação relacionada