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'