syndicate-flake/flake.nix

85 lines
2.3 KiB
Nix

{
description = "Syndicate utilities";
inputs.nixpkgs.url = "nixpkgs/57610d2f8f09";
outputs =
{ self, nixpkgs }:
{
lib = nixpkgs.lib.extend (import ./lib.nix);
overlays.default = import ./overlay.nix;
legacyPackages = self.lib.mapAttrs (system: pkgs: pkgs.extend self.overlays.default) {
inherit (nixpkgs.legacyPackages) x86_64-linux;
};
packages = self.lib.mapAttrs (
system: pkgs: with pkgs; {
inherit
fontconfig_actor
libnotify_actor
noise-c
preserves-tools
squeak
squeaker
syndicate-server
syndicated-open
syndicate_utils
;
preserves-py = python3Packages.preserves;
syndicate-py = python3Packages.syndicate-py;
}
) self.legacyPackages;
nixosModules.default = self.nixosModules.syndicate-server;
nixosModules.syndicate-server =
# A little hack to apply our overlay to this module only.
{
config,
lib,
pkgs,
...
}:
(import ./nixos/syndicate-server.nix) {
inherit config lib;
pkgs = pkgs.extend self.overlays.default;
};
devShells = self.lib.mapAttrs (
system: pkgs: with pkgs; {
default = mkShell { packages = builtins.attrValues self.packages.${system}; };
}
) self.legacyPackages;
checks = self.lib.mapAttrs (
system: pkgs':
with import (nixpkgs + "/nixos/lib/testing-python.nix") {
inherit system;
pkgs = pkgs';
}; {
simple = simpleTest {
name = "http";
nodes.machine =
{ config, pkgs, ... }:
{
imports = [ self.nixosModules.syndicate-server ];
nixpkgs.pkgs = pkgs';
services.syndicate.tty1 = {
enable = true;
user = "loser";
config = [ ];
};
users.users.loser.isNormalUser = true;
};
testScript = ''
machine.wait_for_job("syndicate-tty1")
'';
};
}
) { inherit (self.legacyPackages) x86_64-linux; };
};
}