all repos — dot @ 13cc065ec014b86369dfe4ad60d1a43fa06fd251

Shell, editor and terminal configuration, and the tools that go with them

bin/dotfiles-sync (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
#!/bin/bash

# Transitional, added 2026-09-17: the sync job moved to cloud-setup, whose
# svc/setup.sh points each host's unit at its own copy. A host whose unit still
# runs this path -- one that was offline when the units were regenerated --
# lands here: bring its cloud-setup clone up to date and hand over, so it keeps
# receiving until someone runs `dotfiles-sync-enable` there. Remove once no unit
# points at this file.

set -euo pipefail

cloud_setup="$HOME/src/soarez/cloud-setup"
target="$cloud_setup/bin/dotfiles-sync"

if [[ ! -x "$target" && -d "$cloud_setup/.git" ]]
then
  umask 022
  git -C "$cloud_setup" fetch --prune origin && git -C "$cloud_setup" merge --ff-only --quiet origin/master || true
fi

if [[ -x "$target" ]]
then
  exec "$target" "$@"
fi

>&2 cat <<MSG
dotfiles-sync has moved to cloud-setup, and this host has no usable copy at
$target. To recover:

  git -C $cloud_setup pull --ff-only
  $(cd "$(dirname "$(readlink -f "$0")")/.." && pwd)/link.sh yes
  dotfiles-sync-enable
MSG
exit 1