1
0
Fork 0

Merge branch 'main' of ssh://code.8bitbuddhism.com/aires/nix-configuration

This commit is contained in:
Aires 2024-05-30 23:23:43 -04:00
commit 184a8a72aa
2 changed files with 23 additions and 24 deletions

View file

@ -252,7 +252,7 @@
"locked": { "locked": {
"lastModified": 1717092160, "lastModified": 1717092160,
"narHash": "sha256-dype0zRMyP94Uo8YC1vWQ6lkvXLYMep6+Xo7AW4K9cs=", "narHash": "sha256-dype0zRMyP94Uo8YC1vWQ6lkvXLYMep6+Xo7AW4K9cs=",
"ref": "42ddf14d36d9fab1eb070f51fdf1991d1a21dde9", "ref": "refs/heads/main",
"rev": "42ddf14d36d9fab1eb070f51fdf1991d1a21dde9", "rev": "42ddf14d36d9fab1eb070f51fdf1991d1a21dde9",
"revCount": 42, "revCount": 42,
"type": "git", "type": "git",

View file

@ -8,6 +8,20 @@
let let
cfg = config.host.services.autoUpgrade; cfg = config.host.services.autoUpgrade;
# List of packages to include in each service's $PATH
pathPkgs = with pkgs; [
# Courtesy of https://discourse.nixos.org/t/how-to-use-other-packages-binary-in-systemd-service-configuration/14363
coreutils
gnutar
xz.bin
gzip
git
config.nix.package.out
nh
openssh
sudo
];
in in
{ {
options = { options = {
@ -31,22 +45,14 @@ in
Type = "oneshot"; Type = "oneshot";
User = "root"; User = "root";
}; };
path = with pkgs; [ path = pathPkgs;
coreutils
gnutar
xz.bin
gzip
git
config.nix.package.out
nh
openssh
sudo
];
script = '' script = ''
cd ${config.users.users.aires.home}/Development/nix-configuration cd ${config.secrets.nixConfigFolder}
# Check if there are changes from Git # Check if there are changes from Git.
# Since we're running this as root, we need to su into the user who owns the config folder.
sudo -u aires git fetch sudo -u aires git fetch
sudo -u aires git diff --exit-code main origin/main sudo -u aires git diff --exit-code main origin/main
# If we have changes (git diff returns 1), pull changes and run the update
if [ $? -eq 1 ]; then if [ $? -eq 1 ]; then
sudo -u aires git pull --recurse-submodules sudo -u aires git pull --recurse-submodules
nh os switch nh os switch
@ -71,19 +77,12 @@ in
Type = "oneshot"; Type = "oneshot";
User = config.users.users.aires.name; User = config.users.users.aires.name;
}; };
path = with pkgs; [ path = pathPkgs;
# Courtesy of https://discourse.nixos.org/t/how-to-use-other-packages-binary-in-systemd-service-configuration/14363 # Git diffing strategy courtesy of https://stackoverflow.com/a/40255467
coreutils
gnutar
xz.bin
gzip
git
config.nix.package.out
openssh
];
script = '' script = ''
set -eu set -eu
cd ${config.secrets.nixConfigFolder} cd ${config.secrets.nixConfigFolder}
# Make sure we're up-to-date
git pull --recurse-submodules git pull --recurse-submodules
nix flake update --commit-lock-file nix flake update --commit-lock-file
git push git push