summaryrefslogtreecommitdiff
path: root/Biz.nix
diff options
context:
space:
mode:
Diffstat (limited to 'Biz.nix')
-rwxr-xr-xBiz.nix68
1 files changed, 36 insertions, 32 deletions
diff --git a/Biz.nix b/Biz.nix
index a76fd8c..7435c08 100755
--- a/Biz.nix
+++ b/Biz.nix
@@ -1,34 +1,38 @@
#!/usr/bin/env run.sh
# nunya
-{bild, ...}:
-# This is the biz hosting service. Currently it defines a base OS similar to
-# Omni/Cloud.nix et al and starts each Biz/* thing as a systemd service. A
-# better solution might be to define each Biz/* thing as a container, and then
-# wire them together as necessary here, but I don't know how that works so I'll
-# just stick to this method for now.
-bild.os {
- imports = [
- ./Omni/Cloud/Hardware.nix
- ./Omni/Os/Base.nix
- ./Omni/Packages.nix
- ./Omni/Users.nix
- ./Biz/Storybook.nix
- ./Biz/PodcastItLater/Web.nix
- ./Biz/PodcastItLater/Worker.nix
- ];
- networking.hostName = "biz";
- networking.domain = "storybook.bensima.com";
- time.timeZone = "America/New_York";
- services.storybook = {
- enable = false;
- package = bild.run ./Biz/Storybook.py;
- };
- services.podcastitlater-web = {
- enable = true;
- package = bild.run ./Biz/PodcastItLater/Web.py;
- };
- services.podcastitlater-worker = {
- enable = true;
- package = bild.run ./Biz/PodcastItLater/Worker.py;
- };
-}
+{bild, ...}: let
+ # Pre-declared targets prevent recursive builds during NixOS evaluation.
+ # All bild.run calls happen once at this top level.
+ targets = import ./Biz/Targets.nix {inherit bild;};
+in
+ # This is the biz hosting service. Currently it defines a base OS similar to
+ # Omni/Cloud.nix et al and starts each Biz/* thing as a systemd service. A
+ # better solution might be to define each Biz/* thing as a container, and then
+ # wire them together as necessary here, but I don't know how that works so I'll
+ # just stick to this method for now.
+ bild.os {
+ imports = [
+ ./Omni/Cloud/Hardware.nix
+ ./Omni/Os/Base.nix
+ ./Omni/Packages.nix
+ ./Omni/Users.nix
+ ./Biz/Storybook.nix
+ ./Biz/PodcastItLater/Web.nix
+ ./Biz/PodcastItLater/Worker.nix
+ ];
+ networking.hostName = "biz";
+ networking.domain = "storybook.bensima.com";
+ time.timeZone = "America/New_York";
+ services.storybook = {
+ enable = false;
+ package = targets.storybook;
+ };
+ services.podcastitlater-web = {
+ enable = true;
+ package = targets.podcastitlater-web;
+ };
+ services.podcastitlater-worker = {
+ enable = true;
+ package = targets.podcastitlater-worker;
+ };
+ }