1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/deploy.nix

68 lines
1.8 KiB
Nix
Raw Normal View History

2019-04-10 21:14:29 +02:00
{ catullus-ssh ? "root@catullus.r"
, scardanelli-ssh ? "root@scardanelli.r:22022"
, homeros-ssh ? "root@homeros.r:22022"
}:
2019-01-31 23:39:38 +01:00
let
krops = builtins.fetchGit {
url = "https://cgit.krebsco.de/krops/";
2019-05-15 18:21:58 +02:00
ref = "v1.14.0";
2019-01-31 23:39:38 +01:00
};
lib = import "${krops}/lib";
pkgs = import "${krops}/pkgs" {};
2019-04-11 15:06:03 +02:00
importJson = (import <nixpkgs> {}).lib.importJSON;
2019-01-31 23:39:38 +01:00
2019-04-20 09:08:39 +02:00
niveum = path: {
2019-01-31 23:39:38 +01:00
nixpkgs.git = {
url = https://github.com/NixOS/nixpkgs-channels;
2019-04-11 15:06:03 +02:00
ref = (importJson ./nixpkgs.json).rev;
};
2019-04-20 09:56:39 +02:00
nixos-unstable.git = {
url = https://github.com/NixOS/nixpkgs-channels;
ref = "nixos-unstable";
};
2019-04-20 09:08:39 +02:00
system.file = toString path;
lib.file = toString ./lib;
packages.file = toString ./packages;
configs.file = toString ./configs;
dot.file = toString ./dot;
modules.file = toString ./modules;
nixos-config.symlink = "system/configuration.nix";
};
minimal = path: other: lib.evalSource [(niveum path // other)];
regular = path: minimal path (niveum path // {
2019-04-19 03:11:51 +02:00
home-manager.git = {
url = https://github.com/rycee/home-manager;
ref = "2ccbf43";
};
2019-04-18 17:09:34 +02:00
stockholm.git = {
url = https://cgit.krebsco.de/stockholm;
ref = "7e1b197dab13d024ba491c96dc959306324943c0";
};
2019-04-20 09:08:39 +02:00
});
2019-01-31 23:39:38 +01:00
2019-04-10 21:14:29 +02:00
systems.scardanelli = pkgs.krops.writeDeploy "deploy-scardanelli" {
2019-04-20 09:08:39 +02:00
source = regular ./systems/scardanelli;
2019-04-10 21:14:29 +02:00
target = scardanelli-ssh;
};
systems.homeros = pkgs.krops.writeDeploy "deploy-homeros" {
2019-04-20 09:08:39 +02:00
source = regular ./systems/homeros;
2019-04-10 21:14:29 +02:00
target = homeros-ssh;
};
2019-01-31 23:39:38 +01:00
systems.catullus = pkgs.krops.writeDeploy "deploy-catullus" {
2019-04-20 09:08:39 +02:00
source = minimal ./systems/catullus {
secrets.pass = {
dir = toString ~/.password-store;
name = "catullus";
2019-04-13 23:26:01 +02:00
};
};
2019-02-06 13:17:31 +01:00
target = catullus-ssh;
2019-01-31 23:39:38 +01:00
};
in systems // {
all = pkgs.writeScript "deploy-all" (lib.concatStringsSep "\n" (lib.attrValues systems));
}