Size: a a a

2020 November 28

MG

Misha Gusarov in NixOS
Господа, а как добраться до writeShellScriptBin в apps output во флейке?
источник

MG

Misha Gusarov in NixOS
Я вижу там два магических параметра - self и nix, в которых ничего не находится, и один не магический - nixpkgs, в котором я не могу найти, где этот writeShellScriptBin доступен.
источник

MG

Misha Gusarov in NixOS
Как пару месяцев назад тут обсуждали, дампать эти высокоуровневые деревья бессмысленно из-за их ленивой бесконечности, а код читать на этом птичьем псевдохаскеле сложно.
источник

АБ

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

MG

Misha Gusarov in NixOS
Как сослаться на writeShellScriptBin в flake.nix?
источник

MG

Misha Gusarov in NixOS
Вне nixosSystem - в output, который запускает программу.
источник

MG

Misha Gusarov in NixOS
Внутри nixosSystem я могу сделать функцию, которая мне притащит pkgs, а в output, который для nix run, как?
источник

MG

Misha Gusarov in NixOS
Хотя, возможно, это XY problem. Моя цель - сделать nix run, который запустит скрипт, лежащий в том же репозитории, что и флейк. Как это сделать?
источник

АБ

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

АБ

Александр Бантьев... in NixOS
apps.x86_64-linux.your-script = { type = "app"; program = ./path/to/your-script.sh; }
источник

АБ

Александр Бантьев... in NixOS
Если очень хочется именно writeShellScriptBin -- то просто apps.x86_64-linux.your-script = { type = "app"; program = nixpkgs.legacyPackages.x86_64-linux.writeShellScriptBin <...>; }
источник

MG

Misha Gusarov in NixOS
Александр Бантьев
apps.x86_64-linux.your-script = { type = "app"; program = ./path/to/your-script.sh; }
Мм, кажется, у меня такое не работало, сейчас ещё раз проверю.
источник

АБ

Александр Бантьев... in NixOS
А если хочется не хардкодить x86_64-linux -- то builtins.mapAttrs (<...>) nixpkgs.legacyPackages, либо добавь инпут github:numtide/flake-utils и сделай flake-utils.lib.eachDefaultSystem
источник

АБ

Александр Бантьев... in NixOS
Misha Gusarov
Мм, кажется, у меня такое не работало, сейчас ещё раз проверю.
источник

АБ

Александр Бантьев... in NixOS
Ок, забыл toString, но по-моему можно и без него.
источник

MG

Misha Gusarov in NixOS
Ух, я просто забыл добавить файл в репо, спасибо.
источник

MG

Misha Gusarov in NixOS
И ему обязательно быть executable
источник

АБ

Александр Бантьев... in NixOS
Не за что, обращайтесь ещё )
источник

MG

Misha Gusarov in NixOS
Заработало, ура.
источник

MG

Misha Gusarov in NixOS
А как ему в $PATH докинуть всякого?
источник