diff --git a/nixproc/backends/synit/test-module/nixos-syndicate-server.nix b/nixproc/backends/synit/test-module/nixos-syndicate-server.nix index 83c79c1..acd68be 100644 --- a/nixproc/backends/synit/test-module/nixos-syndicate-server.nix +++ b/nixproc/backends/synit/test-module/nixos-syndicate-server.nix @@ -2,8 +2,13 @@ let syndicate-server = pkgs.syndicate-server or (let - repo = builtins.fetchTarball - "https://git.syndicate-lang.org/ehmry/syndicate-flake/archive/trunk.tar.gz"; + repo = pkgs.fetchFromGitea { + domain = "git.syndicate-lang.org"; + owner = "ehmry"; + repo = "syndicate-flake"; + rev = "e28f71ba8878478cc160bd901da2f7b9bee29a5f"; + hash = "sha256-YaHKplVpnaL95Xwv7SYUKvNssiulLQmIAF/G78g9KZc="; + }; pkgs' = import repo { inherit pkgs; }; in pkgs'.syndicate-server); @@ -16,11 +21,21 @@ let }; in { + networking.localCommands = '' + echo '>' > \ + /run/etc/syndicate/core/milestone-network.pr + ''; + systemd.services.syndicate-server = { description = "Syndicate dataspace server"; wantedBy = [ "basic.target" ]; + before = [ "network.target" ]; preStart = '' - mkdir -p "/etc/syndicate/services" + mkdir -p \ + "/etc/syndicate/services" \ + "/run/etc/syndicate/core" \ + "/run/etc/syndicate/services" \ + ${lib.getExe pkgs.rsync} -r \ --exclude 001-console-getty.pr \ --exclude configdirs.pr \ @@ -29,6 +44,10 @@ in { --exclude services \ "${synit}/packaging/packages/synit-config/files/etc/syndicate/" \ "/etc/syndicate" + echo '>' > \ + /etc/syndicate/core/configdirs.pr + echo '>' > \ + /etc/syndicate/services/configdirs.pr ''; serviceConfig = { ExecStart = diff --git a/tools/synit/nixproc-synit-deploy.in b/tools/synit/nixproc-synit-deploy.in index af89790..bbc4f9d 100644 --- a/tools/synit/nixproc-synit-deploy.in +++ b/tools/synit/nixproc-synit-deploy.in @@ -136,7 +136,15 @@ nixproc-init-state $stateDirArg $runtimeDirArg $logDirArg $tmpDirArg $cacheDirAr createNewGroups createNewUsers -cp -v $profilePath /etc/syndicate/services/processes.pr +dest_file=/run/etc/syndicate/services/processes.pr + +if [ -e "$dest_file"] && [ ! -L "$dest_file" ] +then + echo "$dest_file exists but is not a symlink, refusing to overwrite" + exit 1 +fi + +ln -sf $profilePath /etc/syndicate/services/processes.pr # Delete obsolete users and groups deleteObsoleteUsers