Size: a a a

2021 June 20

АБ

Александр Бантьев... in NixOS
Аттрсет по сути можно сделать чем угодно на лету
источник

АБ

Александр Бантьев... in NixOS
Если у аттрсета есть магический аттрибут outPath, то этот аттрсет ведет себя ещё и как строка
источник

АБ

Александр Бантьев... in NixOS
Например попробуй "${{ outPath = "abcd"; }}"
источник

АБ

Александр Бантьев... in NixOS
Или toString { outPath = "abcd"; }
источник

АБ

Александр Бантьев... in NixOS
Есть ещё магические __toString и __functor, которые вместе позволяют аттрсету вести себя как функция и потом удобно превращаться в строку
источник

АБ

Александр Бантьев... in NixOS
Например, sumFunctor = { sum = 0; __toString = a: toString a.sum; __functor = a: b: a // { sum = a.sum + b; }; }
источник

АБ

Александр Бантьев... in NixOS
И потом toString (sumFunctor 1 2 3)
источник

АБ

Александр Бантьев... in NixOS
Так, я отвлекся
источник

АБ

Александр Бантьев... in NixOS
На самом деле cheopslab.docker.sirius-base это аттрсет у которого уже есть и outPath, и passthru (пока что passthru пустой)
источник

АБ

Александр Бантьев... in NixOS
Ты можешь добавить всяких вещей в passthru и это не повлияет на outPath (всмысле nix не захочет пересобирать образ просто от изменения passthru)
источник

AV

Alexander Vershilov in NixOS
хм т.е. в base будет что-то вроде:

let config = ...
docketTools.buildImage { ...} // { passthru = config }


что-то актое?
источник

АБ

Александр Бантьев... in NixOS
Ну, можно и такое
источник

АБ

Александр Бантьев... in NixOS
Но ЕМНИП можно просто passthru в buildImage передать
источник

АБ

Александр Бантьев... in NixOS
А, нет, нельзя
источник

АБ

Александр Бантьев... in NixOS
Значит первый вариант, да
источник

AV

Alexander Vershilov in NixOS
В примерах через //
источник

AV

Alexander Vershilov in NixOS
Кстати, а то, что не стоит лишний раз // испорльзовать это мне где-то показалось?
источник

АБ

Александр Бантьев... in NixOS
Ну, ты уже на это наткнулся вроде
источник

АБ

Александр Бантьев... in NixOS
Где // перезатирает иногда неожиданно
источник

АБ

Александр Бантьев... in NixOS
Есть lib.recursiveUpdate который более предсказуемый в некоторых случаях
источник