Tanto nix-shell
como nix-build
suportam a transmissão de argumentos com --arg
e --argstr
. --arg
será avaliado como uma expressão nix e --argstr
será tratado como uma string literal.
Usando a expressão fornecida na pergunta, você poderia usá-los para substituir o valor de pkgs
da seguinte maneira:
nix-shell -A yarn --arg pkgs 'import /home/me/nixpkgs {}'
Você pode adicionar outro argumento à sua expressão que representa o ramo de dependência:
branch ? "2310-nifty-unmerged-feature"
e referencie-o dentro da expressão com:
profile="export DEPENDENCY_BRANCH=${branch}";
A ramificação pode então ser passada na linha de comando com:
nix-shell --arg branch \"somebranch\"
nix-shell --argstr branch somebranch
Com isso, deve-se ajustar as expressões externas de maneira semelhante e fazê-las propagar o argumento branch
.
nix-shell
tem mais detalhes sobre o tratamento de --arg
e --argstr
.