# ~/.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 sources to $(nix flake metadata --json | jq '.locks.nodes.nixpkgs.locked.rev' --raw-output | cut -c1-7)" && FLAKE=$PWD nh os switch'