diff --git a/cli-tools.nix b/cli-tools.nix index 1e96e2d..bc64c68 100644 --- a/cli-tools.nix +++ b/cli-tools.nix @@ -1,6 +1,22 @@ -{ config, ... }: +{ inputs, ... }: { + system.activationScripts.postActivation.text = '' + stamp=/usr/local/share/cupsadmin.stamp + want="${inputs.cupsadmin}" + if [ "$(cat "$stamp" 2>/dev/null)" != "$want" ]; then + echo "building cupsadmin..." + tmp=$(mktmp -d) + cp -R "$want"/. "$tmp" + chmod -R u+w "$tmp" + ( cd "$tmp" && /user/bin/swift build -c release ) \ + && install -m 755 "$tmp/.build/release/cupsadmin" /usr/local/bin/cupsadmin \ + && mkdir -p /usr/local/share && echo #$want" > "$stamp" \ + || echo "cupsadmin build failed, skipping" + rm -rf "$tmp" + fi + ''; + environment.shellAliases = { yt = "yt-dlp"; ll = "ls -la"; diff --git a/flake.nix b/flake.nix index d7ab37d..9a0ad75 100644 --- a/flake.nix +++ b/flake.nix @@ -6,10 +6,16 @@ nix-darwin.url = "github:nix-darwin/nix-darwin"; nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; nix-homebrew.url = "github:zhaofengli/nix-homebrew"; + + cupsadmin = { + url = "github:kfattic/cupsadmin"; + flake = false; + }; }; outputs = inputs@{ self, nix-darwin, nixpkgs, nix-homebrew, ... }: { darwinConfigurations."Brians-MacBook-Air" = nix-darwin.lib.darwinSystem { + specialArgs = { inherit inputs; }; modules = [ ./configuration.nix nix-homebrew.darwinModules.nix-homebrew