56 lines
1.2 KiB
Bash
56 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
(
|
|
set -euo pipefail
|
|
|
|
now="$(date +%Y-%m-%d)"
|
|
if [[ -s .direnv/pull-date && "$now" = "$(cat .direnv/pull-date)" ]]; then
|
|
return 0
|
|
fi
|
|
|
|
prints_true() {
|
|
[[ "$("$@" 2>/dev/null)" = "true" ]]
|
|
}
|
|
|
|
git_dot_git_dir() {
|
|
if prints_true git rev-parse --is-inside-work-tree; then
|
|
git rev-parse --git-dir 2>/dev/null
|
|
fi
|
|
}
|
|
|
|
gdot="$(git_dot_git_dir)"
|
|
[ -n "$gdot" ] || return 1
|
|
|
|
if [[ -f "$gdot/rebase-merge/interactive" ]]; then
|
|
printf >&2 "%s\n" "REBASE-i"
|
|
return 1
|
|
elif [[ -d "$gdot/rebase-merge" ]]; then
|
|
printf >&2 "%s\n" "REBASE-m"
|
|
return 1
|
|
elif [[ -d "$gdot/rebase-apply" ]]; then
|
|
printf >&2 "%s\n" "AM/REBASE"
|
|
return 1
|
|
elif [[ -f "$gdot/MERGE_HEAD" ]]; then
|
|
printf >&2 "%s\n" "MERGING"
|
|
return 1
|
|
elif [[ -f "$gdot/CHERRY_PICK_HEAD" ]]; then
|
|
printf >&2 "%s\n" "CHERRY-PICKING"
|
|
return 1
|
|
elif [[ -f "$gdot/BISECT_LOG" ]]; then
|
|
printf >&2 "%s\n" "BISECTING"
|
|
return 1
|
|
fi
|
|
|
|
git pull --rebase --autostash
|
|
|
|
mkdir -p .direnv/
|
|
printf "%s\n" "$now" >.direnv/pull-date
|
|
direnv allow # cheeky
|
|
)
|
|
|
|
export NIX_PATH_ORIG="${NIX_PATH:-}"
|
|
|
|
# pkgs/top-level/impure.nix go brrr
|
|
export NIXPKGS_CONFIG="$(realpath config.nix)"
|
|
export NIX_PATH="$NIX_PATH${NIX_PATH:+:}nixpkgs-overlays=$(realpath overlays.nix)"
|