update-local-flakes: Make available as package

If extensions have their lock file updated in some cases,
running .#updateLocalFlakes will not work.
This commit is contained in:
Geoffrey Frogeye 2024-06-17 18:21:09 +02:00
parent c4058e8102
commit 0d047d3e46
Signed by: geoffrey
GPG key ID: C72403E7F82E6AD8
5 changed files with 17 additions and 7 deletions

View file

@ -0,0 +1,2 @@
{ pkgs, ... }:
pkgs.writers.writePython3Bin "update-local-flakes" {} (builtins.readFile ./update-local-flakes.py)

View file

@ -0,0 +1,3 @@
(self: super: {
update-local-flakes = super.callPackage ./. {};
})

View file

@ -42,6 +42,9 @@
config = { config = {
allowUnfree = true; allowUnfree = true;
}; };
overlays = [
(import ./common/update-local-flakes/overlay.nix)
];
}; };
homeManagerConfig = { homeManagerConfig = {
sharedModules = [ self.homeManagerModules.dotfiles ]; sharedModules = [ self.homeManagerModules.dotfiles ];
@ -72,7 +75,9 @@
}; };
flakeTools = { self }: flake-utils.lib.eachDefaultSystem (system: flakeTools = { self }: flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = import nixpkgs (nixpkgsConfig // {
inherit system;
});
in in
{ {
apps = { apps = {
@ -94,10 +99,10 @@
${pkgs.lix}/bin/nix repl --expr 'let flake = builtins.getFlake "${self}"; in flake // flake.nixosConfigurations // rec { pkgs = import ${nixpkgs} {}; lib = pkgs.lib; }' ${pkgs.lix}/bin/nix repl --expr 'let flake = builtins.getFlake "${self}"; in flake // flake.nixosConfigurations // rec { pkgs = import ${nixpkgs} {}; lib = pkgs.lib; }'
''}"; ''}";
}; };
# Available globally should this be needed in times of shenanigans
updateLocalFlakes = { updateLocalFlakes = {
type = "app"; type = "app";
program = "${pkgs.writers.writePython3 "update-local-flakes" { } program = "${pkgs.update-local-flakes}/bin/update-local-flakes";
(builtins.readFile ./common/update-local-flakes.py)}";
}; };
nixosRebuild = { nixosRebuild = {
type = "app"; type = "app";

View file

@ -1,6 +1,7 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
home.packages = [ home.packages = [
pkgs.update-local-flakes
(pkgs.writeShellApplication { (pkgs.writeShellApplication {
name = "rb"; name = "rb";
text = '' text = ''
@ -13,21 +14,20 @@
nixos_flake="$(readlink -f /etc/nixos)" nixos_flake="$(readlink -f /etc/nixos)"
if [ -f "$nixos_flake/flake.nix" ] if [ -f "$nixos_flake/flake.nix" ]
then then
# TODO For extensions this only works on systems where the flake has been resolved update-local-flakes "$nixos_flake"
nix run "$nixos_flake#updateLocalFlakes" -- "$nixos_flake"
nix run "$nixos_flake#nixosRebuild" -- "$verb" "$@" nix run "$nixos_flake#nixosRebuild" -- "$verb" "$@"
fi fi
# TODO Fix nix-on-droid and home-manager # TODO Fix nix-on-droid and home-manager
# hm_flake="${config.xdg.configHome}/home-manager/flake.nix" # hm_flake="${config.xdg.configHome}/home-manager/flake.nix"
# if [ -f "$hm_flake" ] # if [ -f "$hm_flake" ]
# then # then
# {ulf} "$hm_flake" # update-local-flakes "$hm_flake"
# home-manager "$verb" "$@" # home-manager "$verb" "$@"
# fi # fi
# nod_flake="${config.xdg.configHome}/nix-on-droid/flake.nix" # nod_flake="${config.xdg.configHome}/nix-on-droid/flake.nix"
# if [ -f "$nod_flake" ] # if [ -f "$nod_flake" ]
# then # then
# {ulf} "$nod_flake" # update-local-flakes "$nod_flake"
# nix-on-droid "$verb" --flake "$(dirname "$nod_flake")" "$@" # nix-on-droid "$verb" --flake "$(dirname "$nod_flake")" "$@"
# fi # fi
''; '';