# ~/.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 <<EOT >$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" && FLAKE=$PWD nh os switch'
