summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2019-10-27 12:43:49 -0700
committerBen Sima <ben@bsima.me>2019-11-01 14:22:07 -0700
commitc6662575a085242fd216729ee3429a8b69f91f73 (patch)
tree37a017fe67fd2e2a6e99dd72515e572a92898253
parentf82fddd83e8b713e211b6c3a7fcb0eacd88c3689 (diff)
use a standard buildNixOS function
-rw-r--r--com/influencedbybooks/service.nix (renamed from com/influencedbybooks.nix)0
-rw-r--r--com/simatime.nix82
-rw-r--r--com/simatime/dev.nix4
-rw-r--r--default.nix74
4 files changed, 61 insertions, 99 deletions
diff --git a/com/influencedbybooks.nix b/com/influencedbybooks/service.nix
index f9d0f36..f9d0f36 100644
--- a/com/influencedbybooks.nix
+++ b/com/influencedbybooks/service.nix
diff --git a/com/simatime.nix b/com/simatime.nix
index e26219a..d67c756 100644
--- a/com/simatime.nix
+++ b/com/simatime.nix
@@ -1,4 +1,4 @@
-{ nixos }:
+{ buildNixOS }:
/*
@@ -11,50 +11,40 @@ stuff deployed.
*/
-{
- service =
- let
- nixos-mailserver = builtins.fetchTarball {
- url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/v2.2.1/nixos-mailserver-v2.2.1.tar.gz";
- sha256 = "03d49v8qnid9g9rha0wg2z6vic06mhp0b049s3whccn1axvs2zzx";
- };
- in nixos {
- system = "x86_64-linux";
- configuration = {
- imports = [
- ./simatime/hardware.nix
- ./simatime/networking.nix
-
- # common infra
- ./simatime/users.nix
- ./simatime/packages.nix
-
- # configured modules
- ./simatime/git.nix
- ./simatime/mail.nix
- ./simatime/web.nix
- ./simatime/znc.nix
-
- # third party
- nixos-mailserver
- ];
-
- nixpkgs.config.allowUnfree = true;
-
- programs.mosh = {
- enable = true;
- withUtempter = true;
- };
-
- services.openssh = {
- enable = true;
- passwordAuthentication = false;
- };
-
- security.sudo.wheelNeedsPassword = true;
- boot.cleanTmpDir = true;
- };
+let
+ nixos-mailserver = builtins.fetchTarball {
+ url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/v2.2.1/nixos-mailserver-v2.2.1.tar.gz";
+ sha256 = "03d49v8qnid9g9rha0wg2z6vic06mhp0b049s3whccn1axvs2zzx";
+ };
+in buildNixOS {
+ system = "x86_64-linux";
+ configuration = {
+ imports = [
+ ./simatime/hardware.nix
+ ./simatime/networking.nix
+ # common infra
+ ./simatime/users.nix
+ ./simatime/packages.nix
+ # configured modules
+ ./simatime/git.nix
+ ./simatime/mail.nix
+ ./simatime/web.nix
+ ./simatime/znc.nix
+ # third party
+ nixos-mailserver
+ ];
+ nixpkgs.config.allowUnfree = true;
+ programs.mosh = {
+ enable = true;
+ withUtempter = true;
};
-
- dev = import ./simatime/dev.nix { inherit nixos; };
+ services.openssh = {
+ enable = true;
+ passwordAuthentication = false;
+ };
+ security.sudo.wheelNeedsPassword = true;
+ boot.cleanTmpDir = true;
+ };
+} // {
+ dev = import ./simatime/dev.nix { inherit buildNixOS; };
}
diff --git a/com/simatime/dev.nix b/com/simatime/dev.nix
index a45a92b..b2ed3b0 100644
--- a/com/simatime/dev.nix
+++ b/com/simatime/dev.nix
@@ -1,4 +1,4 @@
-{ nixos }:
+{ buildNixOS }:
/*
@@ -7,7 +7,7 @@ Mountain View.
*/
-nixos {
+buildNixOS {
system = "x86_64-linux";
configuration = {
imports = [
diff --git a/default.nix b/default.nix
index 55f96e7..e3d3ca1 100644
--- a/default.nix
+++ b/default.nix
@@ -2,58 +2,30 @@ let
nixpkgs-tar = builtins.fetchTarball (import ./nixpkgs.nix);
nixpkgs = import "${nixpkgs-tar}" {};
nixos = import "${nixpkgs-tar}/nixos";
+ # TODO(bsima): buildNixOS should be split into multiple functions that each
+ # return one thing, instead of a single function that returns multiple things
+ buildNixOS = opts: let full = (nixos opts); in {
+ system = full.system;
+ vm = full.vm;
+ };
- # a common build function
- #
- bild = file:
- with nixpkgs;
- let
- pack = import file;
-
- depsToPackageSet = packageSet: deps:
- map (s: builtins.getAttr s packageSet) deps;
-
- ghc844_ = pkgs.haskell.packages.ghc844.override (oldAttrs: {
- overrides = with pkgs.haskell.lib; self: super: {
- clay = dontCheck super.clay;
- };
- });
-
- ghc = ghc844_.ghcWithPackages (hp: depsToPackageSet hp
- # we need hinotify for chip/make
- ([ "hinotify" ] ++ pack.deps.both ++ pack.deps.apex));
-
- ghcjs_ = pkgs.haskell.packages.ghcjs.override (oldAttrs: {
- overrides = with pkgs.haskell.lib; self: super: {
- clay = dontCheck super.clay;
- http-types = dontCheck super.http-types;
- tasty-quickcheck = dontCheck super.tasty-quickcheck;
- scientific = dontCheck super.scientific; # takes forever
- servant = dontCheck super.servant;
- comonad = dontCheck super.comonad;
- QuickCheck = dontCheck super.QuickCheck;
- };
- });
-
- ghcjs = ghcjs_.ghcWithPackages (hp:
- depsToPackageSet hp (pack.deps.both ++ pack.deps.aero));
-
- make = ./chip/make;
- in stdenv.mkDerivation {
- name = pack.name;
- version = "0";
- src = ../.;
- nativeBuildInputs = [
- ghc ghcjs
+in {
+ com.simatime = import ./com/simatime.nix { inherit buildNixOS; };
+ com.influencedbybooks = buildNixOS {
+ system = "x86_64-linux";
+ configuration = {
+ imports = [
+ ./com/influencedbybooks/service.nix
+ # common infra
+ ./com/simatime/users.nix
+ ./com/simatime/packages.nix
];
- strictDeps = true;
- buildPhase = "${ghc}/bin/runhaskell ${make} ${pack.name}";
- installPhase = ''
- mkdir -p $out/bin
- cp bild/${pack.name} $out/bin/${pack.name}
- '';
+ nixpkgs.config.allowUnfree = true;
+ services.openssh = {
+ enable = true;
+ passwordAuthentication = false;
+ };
+ security.sudo.wheelNeedsPassword = true;
+ boot.cleanTmpDir = true;
};
-in {
- com.simatime = import ./com/simatime.nix { inherit nixos; };
- com.influencedbybooks = import ./com/influencedbybooks/default.nix {};
}