Problema ao mesclar dois arquivos dot nix simples para nix-shell

2

Eu sou novo em nix expressão. Eu encontrei dois arquivos de configuração que eu quero usar no nix-shell.

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

a.nix é para definir o shellHook personalizado. Aqui simplificado por apenas definir $PS1

{ pkgs ? import <nixpkgs> {}  }:

with pkgs;

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

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

b.nix é para substituição de python. Eu preciso disso para fazer o trabalho jedi-vim .

with import <nixpkgs> {};

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

Eu entendo a.nix estruturas, mas a sintaxe em b.nix é diferente.

Como devo fazer isso?

Existe algum recurso mais simples para estudar ao lado do manual do nixos ?

    
por wizzup 26.05.2017 / 11:10

1 resposta

2

Resolvido com 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="\[3[1;32m\][nix-shell:\w]\n$ \[3[0m\]"
  '';
}

Ainda não entendi completamente o código, mas de alguma forma recebi o prompt de desejo e o jedi-vim agora pode ver yaml

    
por 28.05.2017 / 11:04

Tags