This repository was archived by the owner on Jun 2, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpull_upstream_changes.sh
56 lines (46 loc) · 1.69 KB
/
pull_upstream_changes.sh
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env bash
# pull_upstream_changes - Updates repo and applies upstream changes
#
# Copyright (C) 2016 Peter Mosmans
# <support AT go-forward.net>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# File which has to be available in target directory to qualify as target
FINGERPRINT="docbuilder.py"
# List of files and directories that need to be updated
SOURCEFILES="docbuilder.py docbuilder_proxy.py proxy_vagrant.py show validate_report.py"
# Root directory within source repo
SOURCEROOT=""
## Don't change anything below this line
VERSION=0.7
source=$(dirname $(readlink -f $0))
target=$1
if [ -z "$target" ]; then
target=$(readlink -f .)
if [ "${target}" == "${source}" ]; then
echo "Usage: pull_upstream_changes [TARGET]"
echo " or run from within target directory"
exit
fi
fi
# Check if the target actually contains the repository
if [ ! -z ${FINGERPRINT} ] && [ ! -e $target/${FINGERPRINT} ]; then
echo "[-] ${target} does not contain the correct repository"
exit
fi
# Update repository
echo "[*] Updating source repository (${source})..."
pushd "$source" >/dev/null && git pull && popd >/dev/null
# Only update newer files
echo "[*] Applying changes (if any)..."
for sourcefile in ${SOURCEFILES}; do
if [ -d "${source}/${SOURCEROOT}/${sourcefile}" ]; then
cp -prv ${source}/${SOURCEROOT}/${sourcefile} $target/
else
cp -pv ${source}/${SOURCEROOT}/${sourcefile} $target/${sourcefile}
fi
done
echo "[+] Done"