Evie Litherland-Smith
5db0b3feff
Only pull/push non-syncing repos (currently nixos and emacs) if on the "main" branch, echo warning message and skip otherwise.
58 lines
1.6 KiB
Bash
Executable file
58 lines
1.6 KiB
Bash
Executable file
# Sync common directories, setting url to ensure it's up-to-date first
|
|
SYNC_DIRS=(
|
|
"$HOME/.password-store/"
|
|
"$HOME/.diary/"
|
|
"$HOME/.elfeed/"
|
|
"$HOME/Documents/Org/"
|
|
"$HOME/Documents/References/"
|
|
)
|
|
SYNC_URLS=(
|
|
"https://git.xenia.me.uk/pixelifytica/pass.git"
|
|
"https://git.xenia.me.uk/pixelifytica/diary.git"
|
|
"https://git.xenia.me.uk/pixelifytica/elfeed.git"
|
|
"https://git.xenia.me.uk/pixelifytica/org.git"
|
|
"https://git.xenia.me.uk/pixelifytica/references.git"
|
|
)
|
|
|
|
for i in "${!SYNC_DIRS[@]}"; do
|
|
DIRECTORY="${SYNC_DIRS[$i]}"
|
|
URL="${SYNC_URLS[$i]}"
|
|
echo "--- sync: $DIRECTORY ---"
|
|
if [ ! -d "$DIRECTORY" ]; then
|
|
git clone "$URL" "$DIRECTORY"
|
|
fi
|
|
(
|
|
cd "$DIRECTORY" || exit
|
|
git remote set-url origin "$URL"
|
|
git-sync -ns
|
|
)
|
|
done
|
|
|
|
# Pull NixOS and Emacs config if simple fast-forward
|
|
PULL_DIRS=(
|
|
"/etc/nixos"
|
|
"${XDG_CONFIG_HOME:-$HOME/.config}/emacs"
|
|
)
|
|
PULL_URLS=(
|
|
"https://git.xenia.me.uk/pixelifytica/nixos.git"
|
|
"https://git.xenia.me.uk/pixelifytica/emacs.git"
|
|
)
|
|
for i in "${!PULL_DIRS[@]}"; do
|
|
DIRECTORY="${PULL_DIRS[$i]}"
|
|
URL="${PULL_URLS[$i]}"
|
|
echo "--- pull: $DIRECTORY ---"
|
|
if [ ! -d "$DIRECTORY" ]; then
|
|
git clone "$URL" "$DIRECTORY"
|
|
fi
|
|
(
|
|
cd "$DIRECTORY" || exit
|
|
if [ "$(git branch --show-current)" = "main" ]; then
|
|
git remote set-url origin "$URL"
|
|
git pull --ff-only
|
|
git push
|
|
else
|
|
echo "Not syncing repo $DIRECTORY on branch $(git branch --show-current)"
|
|
fi
|
|
)
|
|
done
|