summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/github-hosts-sync/src/hosts-sync
blob: a8973e72b12431027562e5c79c9064eea2e4c445 (plain)
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
#! /bin/sh
set -efu
exec >&2

hosts_srcdir=$GITHUB_HOST_SYNC_SRCDIR
hosts_worktree=${GITHUB_HOST_SYNC_WORKTREE-/tmp/hosts}
hosts_url=${GITHUB_HOST_SYNC_URL-git@github.com:krebs/hosts.git}
user_mail=${GITHUB_HOST_SYNC_USER_MAIL-$LOGNAME@$(hostname)}
user_name=${GITHUB_HOST_SYNC_USER_NAME-$LOGNAME}

test -d "$hosts_worktree" || git clone "$hosts_url" "$hosts_worktree"

cd "$hosts_worktree"

git pull

rsync \
    --chmod D755,F644 \
    --delete-excluded \
    --filter 'protect .git' \
    --recursive \
    --verbose \
    "$hosts_srcdir/" \
    .

git add .

if test -n "$(git status --porcelain)"; then
  git config user.email "$user_mail"
  git config user.name "$user_name"
  git commit -m bump
  git push
fi