-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathupdate_fontawesome.sh
executable file
·49 lines (41 loc) · 1.19 KB
/
update_fontawesome.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
#! /bin/bash
# should be run in place yo
root=$(pwd)
temp_dir=$root/update-fontawesome
remote_url=https://github.com/FortAwesome/Font-Awesome.git
remote=fontawesome
desired_dirs=(fonts css)
HEAD=$(git rev-parse HEAD)
mkdir $temp_dir
cd $temp_dir
git clone --depth 1 $remote_url $remote
main_repo=$temp_dir/$remote
cd $root
git remote add $remote $main_repo
for name in "${desired_dirs[@]}"
do
:
cd ${main_repo}
echo "Splitting subtree for ${name}..."
git subtree split --prefix=${name}/ -b ${name} > /dev/null 2>&1
cd $root
echo "Fetching new branch..."
git fetch ${remote}
echo "Pulling changes for ${name} into index..."
git merge -X subtree=pelicanfly/static/${name} remotes/${remote}/${name} --no-commit
git checkout --theirs pelicanfly/static/${name}
changes=$(git status --porcelain 2>/dev/null | grep "^[MA]" | wc -l)
if [ "${changes}" -gt 0 ]
then
echo "Changes detected!"
git add .
git commit -m "Auto-merge for subtree of ${name} from ${remote_url}"
else
echo "No changes here."
git merge --abort
git reset --hard ${HEAD}
fi
done
echo "Cleaning up..."
git remote rm ${remote}
rm -rf $temp_dir