Есть configuration.nix
{ config, pkgs, ... }:
let
my_cfg = builtins.fromJSON (builtins.readFile /etc/nixos/.env.json);
home-manager = builtins.fetchTarball {
url = "${my_cfg.nodes.homeManager.url}-${my_cfg.nodes.os.version}.tar.gz";
};
Сначала подумал, что надо как-то кешировать тарбол. А то вдруг отключат интернеты, а я даже переконфигурировать не смогу систему
{ config, pkgs, ... }:
# with config;
let
my_cfg = builtins.fromJSON (builtins.readFile /etc/nixos/.env.json);
home-manager = let
localTarball = "/${my_cfg.nodes.homeManager.path}/${my_cfg.nodes.homeManager.name}-${my_cfg.nodes.os.version}.tar.gz";
in
if builtins.pathExists localTarball then
builtins.fetchTarball "file://${localTarball}"
else
builtins.fetchTarball "${my_cfg.nodes.homeManager.url}-${my_cfg.nodes.os.version}.tar.gz";
# home.file."Downloads/${fileName}".source = builtins.fetchurl {
# url = "https://github.com/nix-community/home-manager/archive/release-${version}.tar.gz";
# sha256 = "";
# };
in
{
# get home-manager tarboll
environment.etc."/${my_cfg.nodes.homeManager.path}/${my_cfg.nodes.homeManager.name}-${my_cfg.nodes.os.version}.tar.gz".source =
url = "${my_cfg.nodes.homeManager.url}-${my_cfg.nodes.os.version}.tar.gz";
sha256 = "${my_cfg.nodes.homeManager.sha256}";
};
...
Как вообще правильно закешировать home-manager? Написать деривацию с fetchTarboll и импортировать ее в configuration.nix?