fix(droid): get build to work again
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2024-11-23 04:53:02 -05:00
parent 097df2b8be
commit fd1ae4fa32
8 changed files with 174 additions and 132 deletions

View file

@ -3,11 +3,11 @@
lib, lib,
pkgs, pkgs,
... ...
}: { }: let
inherit (lib) attrValues concatStringsSep;
in {
imports = [./nix-on-droid.nix]; imports = [./nix-on-droid.nix];
vars.mainUser = "nix-on-droid";
environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix"; environment.variables.FLAKE = "/data/data/com.termux.nix/files/home/.nix";
terminal.font = "${(pkgs.nerdfonts.override { terminal.font = "${(pkgs.nerdfonts.override {
@ -19,7 +19,8 @@
environment.packages = [ environment.packages = [
(pkgs.writeShellApplication { (pkgs.writeShellApplication {
name = "switch"; name = "switch";
runtimeInputs = builtins.attrValues {
runtimeInputs = attrValues {
inherit inherit
(pkgs) (pkgs)
coreutils coreutils
@ -27,10 +28,11 @@
nvd nvd
; ;
}; };
text = '' text = ''
oldProfile=$(realpath /nix/var/nix/profiles/per-user/nix-on-droid/profile) oldProfile=$(realpath /nix/var/nix/profiles/per-user/nix-on-droid/profile)
nix-on-droid ${lib.concatStringsSep " " [ nix-on-droid ${concatStringsSep " " [
"switch" "switch"
"--flake ${config.environment.variables.FLAKE}" "--flake ${config.environment.variables.FLAKE}"
"--builders ssh-ng://matt@100.64.0.7" "--builders ssh-ng://matt@100.64.0.7"

View file

@ -1,13 +1,16 @@
# FIXME: eval is broken
{ {
config, config,
self, self,
... ...
}: { }: {
imports = [ imports = [
../../common/vars self.nixosModules.base-droid
../../common/modules/global.nix {
../../common/packages.nix roles.base = {
enable = true;
user = "nix-on-droid";
};
}
self.nixosModules.tmux self.nixosModules.tmux
{programs.tmux.enableCustomConf = true;} {programs.tmux.enableCustomConf = true;}

View file

@ -0,0 +1,22 @@
self: {lib, ...}: let
inherit (lib) mkOption types;
in {
imports = [
(import ./common-nix self)
(import ./packages self)
];
options.roles.base = {
enable = mkOption {
type = types.bool;
default = true;
};
user = mkOption {
type = types.str;
};
};
# For accurate stack trace
_file = ./default.nix;
}

View file

@ -33,7 +33,7 @@ in {
}; };
}; };
config = mkIf (cfg.enable) { config = mkIf cfg.enable {
environment.variables.FLAKE = mkDefault "/home/${cfg.user}/.nix"; environment.variables.FLAKE = mkDefault "/home/${cfg.user}/.nix";
programs.tmux.enableCustomConf = true; programs.tmux.enableCustomConf = true;

View file

@ -1,45 +1,55 @@
{pkgs, ...}: { {
fonts = { config,
fontconfig = { lib,
enable = true; pkgs,
defaultFonts = { ...
emoji = ["Noto Color Emoji"]; }: let
monospace = ["JetBrainsMono Nerd Font"]; inherit (lib) attrValues mkIf;
sansSerif = ["Noto Nerd Font"];
serif = ["Noto Nerd Font"]; cfg = config.roles.base;
in
mkIf cfg.enable {
fonts = {
fontconfig = {
enable = true;
defaultFonts = {
emoji = ["Noto Color Emoji"];
monospace = ["JetBrainsMono Nerd Font"];
sansSerif = ["Noto Nerd Font"];
serif = ["Noto Nerd Font"];
};
}; };
packages =
[
(pkgs.nerdfonts.override {
fonts = [
"JetBrainsMono"
"Go-Mono"
"Iosevka"
"NerdFontsSymbolsOnly"
"SpaceMono"
"Ubuntu"
"Noto"
];
})
]
++ (attrValues {
inherit
(pkgs)
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
font-awesome
meslo-lgs-nf
jetbrains-mono
ubuntu_font_family
;
});
}; };
packages = # Select internationalisation properties.
[ i18n.defaultLocale = "en_CA.UTF-8";
(pkgs.nerdfonts.override { console.useXkbConfig = true;
fonts = [ }
"JetBrainsMono"
"Go-Mono"
"Iosevka"
"NerdFontsSymbolsOnly"
"SpaceMono"
"Ubuntu"
"Noto"
];
})
]
++ (builtins.attrValues {
inherit
(pkgs)
noto-fonts
noto-fonts-cjk-sans
noto-fonts-emoji
liberation_ttf
font-awesome
meslo-lgs-nf
jetbrains-mono
ubuntu_font_family
;
});
};
# Select internationalisation properties.
i18n.defaultLocale = "en_CA.UTF-8";
console.useXkbConfig = true;
}

View file

@ -4,7 +4,7 @@
lib, lib,
... ...
}: let }: let
inherit (lib) concatStringsSep getName; inherit (lib) concatStringsSep getName mkIf;
baseCfg = config.roles.base; baseCfg = config.roles.base;
cfg = config.services.locate; cfg = config.services.locate;
@ -23,59 +23,60 @@
${updatedb} -o ${database} --prunefs "${pruneFS}" \ ${updatedb} -o ${database} --prunefs "${pruneFS}" \
--prunepaths "${prunePaths}" --prunenames "${pruneNames}" --prunepaths "${prunePaths}" --prunenames "${pruneNames}"
''; '';
in { in
users.users.${baseCfg.user}.extraGroups = [ mkIf (baseCfg.enable) {
locateGroup users.users.${baseCfg.user}.extraGroups = [
]; locateGroup
];
# TODO: add timer # TODO: add timer
systemd.services.locate = { systemd.services.locate = {
wantedBy = ["default.target"]; wantedBy = ["default.target"];
serviceConfig = { serviceConfig = {
User = baseCfg.user; User = baseCfg.user;
Group = locateGroup; Group = locateGroup;
StateDirectory = "locate"; StateDirectory = "locate";
StateDirectoryMode = "0770"; StateDirectoryMode = "0770";
ExecStart = updatedbBin; ExecStart = updatedbBin;
};
}; };
};
home-manager.users.${baseCfg.user}.programs.bash.shellAliases = { home-manager.users.${baseCfg.user}.programs.bash.shellAliases = {
locate = "${pkgs.writeShellScriptBin "lct" '' locate = "${pkgs.writeShellScriptBin "lct" ''
exec ${locate} -d ${database} "$@" 2> >(grep -v "/var/cache/locatedb") exec ${locate} -d ${database} "$@" 2> >(grep -v "/var/cache/locatedb")
''}/bin/lct"; ''}/bin/lct";
updatedb = updatedbBin; updatedb = updatedbBin;
}; };
services.locate = { services.locate = {
enable = true; enable = true;
package = pkgs.mlocate; package = pkgs.mlocate;
localuser = null; localuser = null;
interval = "never"; interval = "never";
prunePaths = [ prunePaths = [
"/var/lib/flatpak" "/var/lib/flatpak"
# Defaults # Defaults
"/tmp" "/tmp"
"/var/tmp" "/var/tmp"
"/var/cache" "/var/cache"
"/var/lock" "/var/lock"
"/var/run" "/var/run"
"/var/spool" "/var/spool"
"/nix/var/log/nix" "/nix/var/log/nix"
]; ];
pruneNames = [ pruneNames = [
"node_modules" "node_modules"
# Defaults # Defaults
".bzr" ".bzr"
".cache" ".cache"
".git" ".git"
".hg" ".hg"
".svn" ".svn"
]; ];
}; };
} }

View file

@ -4,7 +4,9 @@
pkgs, pkgs,
... ...
}: let }: let
inherit (lib) foldl isList mergeAttrsWithFunc optionals unique; inherit (lib) foldl isList mergeAttrsWithFunc mkIf optionals unique;
cfg = config.roles.base;
mergeAttrsList = list: mergeAttrsList = list:
foldl (mergeAttrsWithFunc (a: b: foldl (mergeAttrsWithFunc (a: b:
@ -12,35 +14,36 @@
then unique (a ++ b) then unique (a ++ b)
else b)) {} else b)) {}
list; list;
in { in
environment.systemPackages = [ mkIf cfg.enable {
(pkgs.writeShellApplication { environment.systemPackages = [
name = "rebuild-no-cache"; (pkgs.writeShellApplication {
runtimeInputs = [config.programs.nh.package]; name = "rebuild-no-cache";
text = '' runtimeInputs = [config.programs.nh.package];
exec nh os switch -- --option binary-caches "https://cache.nixos.org" "$@" text = ''
''; exec nh os switch -- --option binary-caches "https://cache.nixos.org" "$@"
}) '';
]; })
];
nix = { nix = {
settings = let settings = let
mkSubstituterConf = url: key: { mkSubstituterConf = url: key: {
substituters = [url]; substituters = [url];
trusted-public-keys = optionals (key != null) [key]; trusted-public-keys = optionals (key != null) [key];
}; };
in in
mergeAttrsList ([ mergeAttrsList ([
(mkSubstituterConf "https://cache.nixos.org" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=") (mkSubstituterConf "https://cache.nixos.org" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=")
(mkSubstituterConf "https://hyprland.cachix.org" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=") (mkSubstituterConf "https://hyprland.cachix.org" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=")
(mkSubstituterConf "https://nix-gaming.cachix.org" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=") (mkSubstituterConf "https://nix-gaming.cachix.org" "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=")
(mkSubstituterConf "https://nixpkgs-wayland.cachix.org" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=") (mkSubstituterConf "https://nixpkgs-wayland.cachix.org" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=")
(mkSubstituterConf "https://nix-community.cachix.org" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=") (mkSubstituterConf "https://nix-community.cachix.org" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=")
(mkSubstituterConf "https://viperml.cachix.org" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=") (mkSubstituterConf "https://viperml.cachix.org" "viperml.cachix.org-1:qZhKBMTfmcLL+OG6fj/hzsMEedgKvZVFRRAhq7j8Vh8=")
(mkSubstituterConf "https://cuda-maintainers.cachix.org" "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=") (mkSubstituterConf "https://cuda-maintainers.cachix.org" "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=")
] ]
++ optionals (!config.services.nix-serve.enable) [ ++ optionals (!config.services.nix-serve.enable) [
(mkSubstituterConf "https://cache.nelim.org" "cache.nelim.org:JmFqkUdH11EA9EZOFAGVHuRYp7EbsdJDHvTQzG2pPyY=") (mkSubstituterConf "https://cache.nelim.org" "cache.nelim.org:JmFqkUdH11EA9EZOFAGVHuRYp7EbsdJDHvTQzG2pPyY=")
]); ]);
}; };
} }

View file

@ -1,5 +1,6 @@
self: { self: {
base = import ./base self; base = import ./base self;
base-droid = import ./base/default-droid.nix self;
borgbackup = import ./borgbackup; borgbackup = import ./borgbackup;
desktop = import ./desktop self; desktop = import ./desktop self;
docker = import ./docker self.inputs.khepri; docker = import ./docker self.inputs.khepri;