forked from nico/dots
32 lines
852 B
Bash
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'
|