Deploy script

This commit is contained in:
Alexander Bantyev 2020-06-21 12:17:20 +03:00
parent 54c96acfc3
commit c171631192
Signed by: balsoft
GPG Key ID: E081FF12ADCB4AD5
5 changed files with 108 additions and 92 deletions

188
flake.nix
View File

@ -2,99 +2,111 @@
description =
"A collection of crap, hacks and copy-paste to make my localhosts boot";
inputs = {
nixpkgs-mopidy = {
type = "github";
owner = "NickHU";
repo = "nixpkgs";
ref = "mopidy";
flake = false;
};
NUR = {
type = "github";
owner = "nix-community";
repo = "NUR";
flake = false;
};
base16-unclaimed-schemes = {
type = "github";
owner = "chriskempson";
repo = "base16-unclaimed-schemes";
flake = false;
};
home-manager = {
type = "github";
owner = "rycee";
repo = "home-manager";
ref = "bqv-flakes";
};
materia-theme = {
type = "github";
owner = "nana-4";
repo = "materia-theme";
flake = false;
};
nixpkgs-old = {
type = "github";
owner = "nixos";
repo = "nixpkgs";
ref = "nixos-19.03";
flake = false;
};
weechat-scripts = {
type = "github";
owner = "weechat";
repo = "scripts";
flake = false;
};
simple-nixos-mailserver = {
type = "git";
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver";
ref = "master";
flake = false;
};
nixpkgs-wayland = {
type = "github";
owner = "colemickens";
repo = "nixpkgs-wayland";
flake = false;
};
weechat-notify-send = {
type = "github";
owner = "s3rvac";
repo = "weechat-notify-send";
flake = false;
};
yt-utilities = {
type = "git";
url = "ssh://git@github.com/serokell/yt-utilities";
ref = "flake";
};
mobile-broadband-provider-info = {
type = "git";
url = "https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info";
flake = false;
};
nixos-fhs-compat = {
type = "github";
owner = "balsoft";
repo = "nixos-fhs-compat";
};
inputs = {
nixpkgs-mopidy = {
type = "github";
owner = "NickHU";
repo = "nixpkgs";
ref = "mopidy";
flake = false;
};
NUR = {
type = "github";
owner = "nix-community";
repo = "NUR";
flake = false;
};
base16-unclaimed-schemes = {
type = "github";
owner = "chriskempson";
repo = "base16-unclaimed-schemes";
flake = false;
};
home-manager = {
type = "github";
owner = "rycee";
repo = "home-manager";
ref = "bqv-flakes";
};
materia-theme = {
type = "github";
owner = "nana-4";
repo = "materia-theme";
flake = false;
};
nixpkgs-old = {
type = "github";
owner = "nixos";
repo = "nixpkgs";
ref = "nixos-19.03";
flake = false;
};
weechat-scripts = {
type = "github";
owner = "weechat";
repo = "scripts";
flake = false;
};
simple-nixos-mailserver = {
type = "git";
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver";
ref = "master";
flake = false;
};
nixpkgs-wayland = {
type = "github";
owner = "colemickens";
repo = "nixpkgs-wayland";
flake = false;
};
weechat-notify-send = {
type = "github";
owner = "s3rvac";
repo = "weechat-notify-send";
flake = false;
};
yt-utilities = {
type = "git";
url = "ssh://git@github.com/serokell/yt-utilities";
ref = "flake";
};
mobile-broadband-provider-info = {
type = "git";
url = "https://gitlab.gnome.org/GNOME/mobile-broadband-provider-info";
flake = false;
};
nixos-fhs-compat = {
type = "github";
owner = "balsoft";
repo = "nixos-fhs-compat";
};
};
outputs = { nixpkgs, nix, self, ... }@inputs: {
nixosConfigurations = with nixpkgs.lib;
outputs = { nixpkgs, nix, self, ... }@inputs: {
nixosConfigurations = with nixpkgs.lib;
let
hosts = map (fname: builtins.head (builtins.match "(.*)\\.nix" fname))
(builtins.attrNames (builtins.readDir ./hardware-configuration));
(builtins.attrNames (builtins.readDir ./hardware-configuration));
mkHost = name:
nixosSystem {
system = "x86_64-linux";
modules = [ (import ./default.nix) ];
specialArgs = { inherit inputs name; };
};
nixosSystem {
system = "x86_64-linux";
modules = [ (import ./default.nix) ];
specialArgs = { inherit inputs name; };
};
in genAttrs hosts mkHost;
legacyPackages.x86_64-linux =
(builtins.head (builtins.attrValues self.nixosConfigurations)).pkgs;
legacyPackages.x86_64-linux =
(builtins.head (builtins.attrValues self.nixosConfigurations)).pkgs;
# nix run github:serokell/deploy
# Because sudo requires local presence of my Yubikey, we have to manually activate the system
# sudo nix-env -p /nix/var/nix/profiles/system --set /nix/var/nix/profiles/per-user/balsoft/system;
# sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch
deploy = {
user = "balsoft";
nodes = builtins.mapAttrs (_: conf: {
hostname = conf.config.networking.hostName;
profiles.system.path = conf.config.system.build.toplevel;
}) self.nixosConfigurations;
};
};
}

View File

@ -8,6 +8,9 @@
;;; Code:
(require 'package)
(package-initialize)
(eval-when-compile
(require 'use-package))

View File

@ -37,6 +37,7 @@
nix-patch
inputs.yt-utilities.defaultPackage.x86_64-linux
pass-wayland
papirus-icon-theme
] ++ (with pkgs.kdeApplications; [
ark
dolphin

View File

@ -49,8 +49,8 @@ in {
gtk = {
enable = true;
iconTheme = {
name = "Adwaita";
package = pkgs.gnome3.adwaita-icon-theme;
name = "Papirus-Dark";
package = pkgs.papirus-icon-theme;
};
theme = {
name = "Generated";

View File

@ -8,7 +8,7 @@ with import ../../../support.nix { inherit lib config; }; {
pkgs.flatpak
pkgs.firefox
pkgs.systemd
pkgs.gnome3.adwaita-icon-theme
pkgs.papirus-icon-theme
];
nixpkgs.config.firefox.enablePlasmaBrowserIntegration = true;
environment.sessionVariables = {
@ -127,7 +127,7 @@ with import ../../../support.nix { inherit lib config; }; {
contrast = 4;
widgetStyle = "Breeze";
};
Icons = { Theme = "Adwaita"; };
Icons = { Theme = "Papirus-Dark"; };
};
home-manager.users.balsoft.home.activation."user-places.xbel" = {
data = ''