fix(shell)!: accept a hostname
parameter
Pass along device `hostname` into `home-manager` (and more) configs Used for the `rebuild` command since `nix-on-droid` uses the `default` system instead of the `$(hostname)` one (because that requires root to change on-device)
This commit is contained in:
parent
bc81e59950
commit
20e7547b0c
4 changed files with 45 additions and 120 deletions
|
@ -1,4 +1,4 @@
|
||||||
{ inputs, outputs, lib, pkgs, config, ... }:
|
{ inputs, outputs, hostname, lib, pkgs, config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
|
@ -102,6 +102,7 @@
|
||||||
reo101.shell = {
|
reo101.shell = {
|
||||||
enable = true;
|
enable = true;
|
||||||
username = "reo101";
|
username = "reo101";
|
||||||
|
inherit hostname;
|
||||||
direnv = true;
|
direnv = true;
|
||||||
zoxide = true;
|
zoxide = true;
|
||||||
};
|
};
|
||||||
|
|
|
@ -16,10 +16,15 @@ in
|
||||||
reo101.shell = {
|
reo101.shell = {
|
||||||
enable = mkEnableOption "reo101 zsh setup";
|
enable = mkEnableOption "reo101 zsh setup";
|
||||||
username = mkOption {
|
username = mkOption {
|
||||||
description = "Username to be used in prompt";
|
description = "Username to be used (for prompt)";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${config.home.username}";
|
default = "${config.home.username}";
|
||||||
};
|
};
|
||||||
|
hostname = mkOption {
|
||||||
|
description = "Hostname to be used (for `rebuild`)";
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
};
|
||||||
atuin = mkOption {
|
atuin = mkOption {
|
||||||
description = "Integrate with atuin";
|
description = "Integrate with atuin";
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
|
@ -36,7 +41,7 @@ in
|
||||||
default = true;
|
default = true;
|
||||||
};
|
};
|
||||||
flakePath = mkOption {
|
flakePath = mkOption {
|
||||||
description = "Flake path (used for `rebuild` command)";
|
description = "Flake path (for `rebuild`)";
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "${config.xdg.configHome}/rix101";
|
default = "${config.xdg.configHome}/rix101";
|
||||||
};
|
};
|
||||||
|
@ -69,7 +74,7 @@ in
|
||||||
];
|
];
|
||||||
|
|
||||||
# Atuin
|
# Atuin
|
||||||
home.file."${config.xdg.configHome}/config.toml" = mkIf cfg.atuin {
|
home.file."${config.xdg.configHome}/atuin/config.toml" = mkIf cfg.atuin {
|
||||||
text = import ./atuin.nix {
|
text = import ./atuin.nix {
|
||||||
keyPath = "${config.xdg.dataHome}/atuin/key";
|
keyPath = "${config.xdg.dataHome}/atuin/key";
|
||||||
};
|
};
|
||||||
|
@ -88,7 +93,9 @@ in
|
||||||
programs.starship = {
|
programs.starship = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = import ./starship.nix { username = cfg.username; };
|
settings = import ./starship.nix {
|
||||||
|
inherit (cfg) username;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Zsh
|
# Zsh
|
||||||
|
@ -116,17 +123,25 @@ in
|
||||||
rebuild () {
|
rebuild () {
|
||||||
${
|
${
|
||||||
let
|
let
|
||||||
inherit (lib.strings) hasInfix;
|
inherit (lib.strings)
|
||||||
|
hasInfix;
|
||||||
|
inherit (pkgs.hostPlatform)
|
||||||
|
isx86_64 isAarch64
|
||||||
|
isLinux isDarwin;
|
||||||
in
|
in
|
||||||
if hasInfix "nixos" pkgs.system then
|
if isx86_64 && isLinux then
|
||||||
"sudo --validate && sudo nixos-rebuild"
|
"sudo --validate && sudo nixos-rebuild"
|
||||||
else if hasInfix "darwin" pkgs.system then
|
else if isDarwin then
|
||||||
"darwin-rebuild"
|
"darwin-rebuild"
|
||||||
else if "aarch64-linux" == pkgs.system then
|
else if isAarch64 then
|
||||||
"nix-on-droid"
|
"nix-on-droid"
|
||||||
else
|
else
|
||||||
"home-manager"
|
"home-manager"
|
||||||
} --flake ${cfg.flakePath} ''$''\{1:-switch''\} |& nix run nixpkgs#nix-output-monitor
|
} --flake ${
|
||||||
|
if cfg.hostname != null
|
||||||
|
then "${cfg.flakePath}#${cfg.hostname}"
|
||||||
|
else "${cfg.flakePath}"
|
||||||
|
} ''$''\{1:-switch''\} "''$''\{@:2''\}" |& nix run nixpkgs#nix-output-monitor
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
(optionalString cfg.atuin ''
|
(optionalString cfg.atuin ''
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
let
|
let
|
||||||
inherit (inputs) nixpkgs;
|
inherit (inputs) nixpkgs;
|
||||||
inherit (nixpkgs) lib;
|
inherit (nixpkgs) lib;
|
||||||
inherit (lib) mapAttrs;
|
|
||||||
inherit (lib.attrsets) filterAttrs;
|
|
||||||
in
|
in
|
||||||
rec {
|
rec {
|
||||||
# Boolean helpers
|
# Boolean helpers
|
||||||
|
@ -14,7 +12,7 @@ rec {
|
||||||
|
|
||||||
# Directory walking helpers
|
# Directory walking helpers
|
||||||
recurseDir = dir:
|
recurseDir = dir:
|
||||||
mapAttrs
|
lib.mapAttrs
|
||||||
(file: type:
|
(file: type:
|
||||||
if type == "directory"
|
if type == "directory"
|
||||||
then recurseDir "${dir}/${file}"
|
then recurseDir "${dir}/${file}"
|
||||||
|
@ -131,6 +129,7 @@ rec {
|
||||||
sharedModules = builtins.attrValues homeManagerModules;
|
sharedModules = builtins.attrValues homeManagerModules;
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
|
inherit hostname;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -163,13 +162,17 @@ rec {
|
||||||
useGlobalPkgs = false;
|
useGlobalPkgs = false;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
sharedModules = builtins.attrValues homeManagerModules;
|
sharedModules = builtins.attrValues homeManagerModules;
|
||||||
extraSpecialArgs = { inherit inputs outputs; };
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
inherit hostname;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
] ++ (builtins.attrValues nixOnDroidModules);
|
] ++ (builtins.attrValues nixOnDroidModules);
|
||||||
|
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
|
inherit hostname;
|
||||||
# rootPath = ./.;
|
# rootPath = ./.;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -190,12 +193,18 @@ rec {
|
||||||
users
|
users
|
||||||
(user: import (root + "/home/${user}.nix"));
|
(user: import (root + "/home/${user}.nix"));
|
||||||
sharedModules = builtins.attrValues homeManagerModules;
|
sharedModules = builtins.attrValues homeManagerModules;
|
||||||
extraSpecialArgs = { inherit inputs outputs; };
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
inherit hostname;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
] ++ (builtins.attrValues nixDarwinModules);
|
] ++ (builtins.attrValues nixDarwinModules);
|
||||||
|
|
||||||
inputs = { inherit inputs outputs nixpkgs; };
|
inputs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
inherit nixpkgs;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
mkHomeManagerHost = root: system: hostname: inputs.home-manager.lib.homeManagerConfiguration {
|
mkHomeManagerHost = root: system: hostname: inputs.home-manager.lib.homeManagerConfiguration {
|
||||||
|
@ -205,7 +214,10 @@ rec {
|
||||||
(root + "/home.nix")
|
(root + "/home.nix")
|
||||||
] ++ (builtins.attrValues homeManagerModules);
|
] ++ (builtins.attrValues homeManagerModules);
|
||||||
|
|
||||||
extraSpecialArgs = { inherit inputs outputs; };
|
extraSpecialArgs = {
|
||||||
|
inherit inputs outputs;
|
||||||
|
inherit hostname;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
createConfigurations =
|
createConfigurations =
|
||||||
|
|
103
util/test.nix
103
util/test.nix
|
@ -1,103 +0,0 @@
|
||||||
# { lib, stdenv, darwin, fetchFromGitHub, rustPlatform, openssl, pkg-config, libxkbcommon }:
|
|
||||||
|
|
||||||
# # rustPlatform.buildRustPackage rec {
|
|
||||||
# rec {
|
|
||||||
# pname = "vim-fmi-cli";
|
|
||||||
# version = "0.2.0";
|
|
||||||
#
|
|
||||||
# src = fetchFromGitHub {
|
|
||||||
# owner = "AndrewRadev";
|
|
||||||
# repo = pname;
|
|
||||||
# rev = "v${version}";
|
|
||||||
# sha256 = "sha256-RAlvDiNvDVRNtex0aD8WESc4R/lskjda;sldfjmAr7FjWtgzHWa4ZSI=";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
|
|
||||||
# {
|
|
||||||
# a = ''''\'''${a}''\''';
|
|
||||||
#
|
|
||||||
# src = fetchFromGitHub {
|
|
||||||
# owner = "g15ecb";
|
|
||||||
# repo = "promela-mode";
|
|
||||||
# rev = "53863e62cfedcd0466e1e19b1ca7b5786cb7a576";
|
|
||||||
# # hash = "sha256-pOVIOj5XnZcNVFNyjMV7Iv0X+R+W+mQfT1o5nay2Kww=";
|
|
||||||
# };
|
|
||||||
# }
|
|
||||||
|
|
||||||
# let
|
|
||||||
# a = "v${b}.${c}.${d}";
|
|
||||||
# b = "2";
|
|
||||||
# c = "3";
|
|
||||||
# d = "6";
|
|
||||||
# rev = a;
|
|
||||||
# in
|
|
||||||
# rec {
|
|
||||||
# src = fetchTest {
|
|
||||||
# inherit a b c rev;
|
|
||||||
# };
|
|
||||||
# rev = "aloda";
|
|
||||||
# alo = da;
|
|
||||||
# }
|
|
||||||
|
|
||||||
let
|
|
||||||
# kek
|
|
||||||
type = "256";
|
|
||||||
in
|
|
||||||
let
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
pname = "vim-fmi-cli";
|
|
||||||
version = "0.2.0";
|
|
||||||
sha = "RAlvDiNvDVRNtex0aD8WESc4R/mAr7FjWtgzHWa4ZSI=";
|
|
||||||
sha256 = "sha${type}-${sha}";
|
|
||||||
|
|
||||||
kek = let
|
|
||||||
in rec {};
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "AndrewRadev";
|
|
||||||
repo = pname;
|
|
||||||
rev = "v${version}";
|
|
||||||
inherit sha256;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
# let
|
|
||||||
# bb = "2";
|
|
||||||
# b = bb;
|
|
||||||
# in
|
|
||||||
# let
|
|
||||||
# # ...
|
|
||||||
# in
|
|
||||||
# fetchTest {
|
|
||||||
# a = "1";
|
|
||||||
# inherit b;
|
|
||||||
# c = "3";
|
|
||||||
# rev = "456";
|
|
||||||
# }
|
|
||||||
|
|
||||||
# let
|
|
||||||
# f = "2";
|
|
||||||
# s = "3";
|
|
||||||
# t = "4";
|
|
||||||
# a = "1";
|
|
||||||
# c = "2";
|
|
||||||
# v = "${f}.${s}.${t}";
|
|
||||||
# kek = rec {
|
|
||||||
# x = "5";
|
|
||||||
# y = x;
|
|
||||||
# };
|
|
||||||
# aloda = fetchTest rec {
|
|
||||||
# c = b;
|
|
||||||
# a = "2";
|
|
||||||
# b = a;
|
|
||||||
# rev = "v${c}";
|
|
||||||
# };
|
|
||||||
# in
|
|
||||||
# fetchTest {
|
|
||||||
# inherit a c;
|
|
||||||
# m = a;
|
|
||||||
# b = "b";
|
|
||||||
# aloda = "${a}b${c}d";
|
|
||||||
# rev = "v${v}";
|
|
||||||
# }
|
|
Loading…
Reference in a new issue