From 1acc767910397d193fdd38d74d27551fd03909d3 Mon Sep 17 00:00:00 2001 From: Nico Date: Sat, 3 May 2025 16:15:58 +1000 Subject: [PATCH] chore: add alias 'flakeup' using direnv to quickly upgrade nix packages --- .envrc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .envrc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..f02cebb --- /dev/null +++ b/.envrc @@ -0,0 +1,32 @@ +# ~/.direnvrc + +# Clear existing aliases when entering a directory + +export tmpdir="$(mktemp -d -t dots-alias-direnv.XXXXXX)" +rm -rf "/tmp/dots-alias-direnv.*" + +export_alias() { + # Create a new alias + local name=$1 + shift + + local alias_dir="$tmpdir/.envrc-aliases" + local alias_file="$alias_dir/$name" + local oldpath="$PATH" + + # If this is the first time we're calling export_alias, add to PATH once + if ! [[ ":$PATH:" == *":$alias_dir:"* ]]; then + mkdir -p "$alias_dir" + PATH_add "$alias_dir" + fi + + # Write the alias file + cat <$alias_file +#!/usr/bin/env bash +PATH="$oldpath" +$@ +EOT + chmod +x "$alias_file" +} + +export_alias flakeup 'nix flake update && git commit flake.lock -m "nix: update flake to latest unstable nixpkgs" && FLAKE=$PWD nh os switch'