-
Notifications
You must be signed in to change notification settings - Fork 194
/
updateDependency.sh
executable file
·63 lines (49 loc) · 1.47 KB
/
updateDependency.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
57
58
59
60
61
62
63
#!/usr/bin/env bash
#
# Usage: ./updateDependency.sh 10.3.3 Dependencies/Nuke Sources/StreamNuke Sources
#
# This script gets the source code of a dependency of a given library, and copies it to our codebase
ensure_clean_git () {
if !(git diff-index --quiet HEAD)
then
echo "→ Seems like git is not clean in $dependency_directory. Please make sure it is clean, and run it again"
exit 1
fi
}
args=("$@")
version=$1
dependency_directory=$2
output_directory=$3
sources_directory=$4
dependency_url=""
# Nuke
if [[ $dependency_directory == *"Nuke"* ]]; then
dependency_url="git@github.com:kean/Nuke.git"
elif [[ $dependency_directory == *"SwiftyGif"* ]]; then
dependency_url="git@github.com:kirualex/SwiftyGif.git"
elif [[ $dependency_directory == *"Starscream"* ]]; then
dependency_url="git@github.com:daltoniam/Starscream.git"
else
echo "→ Unknown dependency at $dependency_directory"
exit 1
fi
if ! [[ -d "$dependency_directory" ]]; then
echo "→ $dependency_directory does not exist in your filesystem. Cloning the repo"
git clone $dependency_url $dependency_directory
fi
cd $dependency_directory
ensure_clean_git
git fetch --tags
git checkout $version
ensure_clean_git
cd -
echo "→ Copying source files"
rm -rf $output_directory
mkdir $output_directory
cp -r "$dependency_directory/$sources_directory/." $output_directory
for f in `find $output_directory -type f \( -iname \*.h -o -iname \*.plist \)`
do
echo "→ Removing $f"
rm $f
done
rm -rf $dependency_directory