Size: a a a

2020 April 22

S

Soul in NixOS
А как на языке nix, имея список config.subconfig.mylist, добавить к нему одно значение? Как append
источник

ц

ц in NixOS
Soul
А как на языке nix, имея список config.subconfig.mylist, добавить к нему одно значение? Как append
mylist = [ item ];
источник

S

Soul in NixOS
ц
mylist = [ item ];
А теперь в другом файле мне надо сделать mylist = [ item item2 ], причем я не знаю какой был item
источник

AS

Alexey Shmalko in NixOS
Soul
А как на языке nix, имея список config.subconfig.mylist, добавить к нему одно значение? Как append
если ты про configuration.nix, то списки по-дефолту мерджатся
источник

ц

ц in NixOS
Soul
А теперь в другом файле мне надо сделать mylist = [ item item2 ], причем я не знаю какой был item
Сделай
источник

ц

ц in NixOS
mylist = [ item2 ];
источник

S

Soul in NixOS
Почему оно так?
источник

ц

ц in NixOS
Хз, так работает
источник

ц

ц in NixOS
Вот удалить элемент - уже сложнее
источник

S

Soul in NixOS
а вообще весь лист очистить как-то можно?
источник

AS

Alexey Shmalko in NixOS
Soul
а вообще весь лист очистить как-то можно?
mkForce вроде
источник

ц

ц in NixOS
Soul
а вообще весь лист очистить как-то можно?
= lib.mkForce [];
источник

АБ

Александр Бантьев in NixOS
Soul
Почему оно так?
Замысел -- чтобы можно было распределять конфиг по нескольким файлам, и они были независимы друг от друга.
источник

АБ

Александр Бантьев in NixOS
А реализация -- в evalConfig вызывается mkMerge кажется, который рекурсивно склеивает все данные согласно их типу.
источник

АБ

Александр Бантьев in NixOS
Некоторые данные склеиваются, некоторые -- нет
источник

АБ

Александр Бантьев in NixOS
list склеивается, str -- нет, lines -- склеивается с добавлением \n между элементами
источник

АБ

Александр Бантьев in NixOS
bool -- не склеивается
источник

S

Soul in NixOS
А существует документация? Я смотрел nix expression language, там небольшая вводная есть, а про такие моменты молчат
источник

S

Soul in NixOS
Вот как например работает возможность опустить начало пути к настройке? config.some.thing.else -> thing.else и работает
источник

VY

Vasiliy Yorkin in NixOS
Vasiliy Yorkin
я, кстати, так и не понял, почему когда пытаюсь пушить в кэш от юзера, то

post-build-hook: cachix: HOME: getXdgDirectory:getHomeDirectory:getEnv: does not exist (no environment variable)

под "пытаюсь пушить в кэш от юзера" я имею ввиду, что хук срабатывает от nix-shell, например

в конфиге сейчас вот так:

extraOptions = "post-build-hook = ${pkgs.writeShellScript "upload-to-cachix" "${pkgs.cachix}/bin/cachix push silence"}";


а вот так работает
nix-shell --post-build-hook "" | cachix push silence 


но хотелось бы, всё таки, понять как это нормально можно сделать
Не, всё таки не работает, понятия не имею как это правилно делается, вот бы пример...
источник