{ config, self, pkgs, ... }: let inherit (builtins) attrValues replaceStrings; inherit (config.sops) secrets; inherit (pkgs.callPackage ./package.nix {}) netdaemonConfig; in { khepri.compositions."netdaemon" = { networks.netdaemon = {external = true;}; services."netdaemon4" = { image = import ./images/netdaemon.nix pkgs; restart = "always"; environmentFiles = [secrets.netdaemon.path]; environment = { HomeAssistant__Host = "homie.nelim.org"; HomeAssistant__Port = "443"; HomeAssistant__Ssl = "true"; NetDaemon__ApplicationAssembly = "netdaemon.dll"; Logging__LogLevel__Default = "Information"; # use Information/Debug/Trace/Warning/Error TZ = "America/New_York"; }; volumes = ["${netdaemonConfig}:/data"]; networks = ["netdaemon"]; }; }; services.home-assistant = { customComponents = attrValues { inherit (self.legacyPackages.${pkgs.system}.hass-components) netdaemon ; }; }; environment.systemPackages = let nixFetchDeps = replaceStrings [(toString self)] ["$FLAKE"] #nix '' let config = (builtins.getFlake ("$FLAKE")).nixosConfigurations.homie; inherit (config) pkgs; netdaemonConfig = pkgs.callPackage ${toString ./package.nix} {}; in netdaemonConfig.fetch-deps ''; in [ (pkgs.writeShellApplication { name = "bumpNetdaemonDeps"; runtimeInputs = with pkgs; [ dos2unix dotnet-sdk_8 ]; text = '' # Install codegen dotnet tool install --create-manifest-if-needed NetDaemon.HassModel.CodeGen --version "$(cat ./.version)" # Run it dotnet tool run nd-codegen -token "$(sed 's/HomeAssistant__Token=//' ${secrets.netdaemon.path})" dos2unix ./HomeAssistantGenerated.cs # This is to not have it count towards CSharp in the repo mv ./HomeAssistantGenerated.cs ./HomeAssistantGenerated # Update all nugets to latest versions regex='PackageReference Include="([^"]*)" Version="([^"]*)"' find . -type f -name '*.csproj' | while read -r file; do # Extract unique package names from the .csproj file packages=$(grep -oP "$regex" "$file" | sed -E 's/.*Include="([^"]*)".*/\1/' | sort -u) # Loop through each package and update for package in $packages; do echo -e "\033[35mUpdate $file package: $package\033[0m" dotnet add "$file" package "$package" done done $(nix build --no-link --print-out-paths --impure --expr "$(cat <