dots/.envrc

32 lines
852 B
Bash

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