-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathbuild_release.sh
executable file
·57 lines (49 loc) · 2.33 KB
/
build_release.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
WORDPRESS_GIT_SRC_PATH="."
DESTINATION_PATH="../onesignal-free-web-push-notifications/trunk/"
RELEASE_ARCHIVE_FILENAME="onesignal-free-web-push-notifications.zip"
# Prevent accidental rm -rf issues if running as root
if (( EUID == 0 )); then
echo "Please do not run this script as root for removing directory safety reasons."
exit 1
fi
# Using exclude .* excludes dot files and dot directories like .git, .vscode
if [[ $DESTINATION_PATH != *onesignal-free-web-push-notifications/trunk/ ]]; then
echo "Script was going to remove ${DESTINATION_PATH}, but quitting because destination path unexpectedly does not end in ...onesignal-free-web-push-notifications/trunk/. Exiting to prevent removing unexpected directory."
exit 1
fi
echo "Building Release Version of OneSignal WordPress Plugin"
echo "──────────────────────────────────────────────────────"
echo "Removing destination folder '${DESTINATION_PATH}'."
rm -rf $DESTINATION_PATH
echo "Creating new empty destination folder '${DESTINATION_PATH}'."
mkdir -p $DESTINATION_PATH
# The --delete option remove files from destination that are not present in source
exclude_options=(
"--exclude=.git/"
"--exclude=.env"
"--exclude=.gitignore"
"--exclude=.github"
"--exclude=.vscode/"
"--exclude=build_release.sh"
"--exclude=*.zip"
"--exclude=onesignal-free-web-push-notifications"
"--exclude=onesignal-free-web-push-notifications.zip"
"--exclude=CONTRIBUTING.md"
"--exclude=LICENSE"
"--exclude=docker*"
"--exclude=PluginDevDockerUsage.md"
"--exclude=README.md"
"--exclude=index.php"
"--exclude=views/css/*.scss"
"--exclude=views/css/callout.css"
"--exclude=views/css/link.css"
"--exclude=views/css/link.css"
"--exclude=views/css/semantic-ui"
)
rsync --archive --delete "${exclude_options[@]}" $WORDPRESS_GIT_SRC_PATH/ $DESTINATION_PATH
# Add new unversioned directories to SVN
svn status $DESTINATION_PATH | grep "^\?" | awk '{print $2}' | xargs -I {} svn add {}
echo "Creating archive of release contents as '${RELEASE_ARCHIVE_FILENAME}' in source directory '${WORDPRESS_GIT_SRC_PATH}'."
cd $WORDPRESS_GIT_SRC_PATH
zip -qr -x ".*" -x="build_release.sh" -x="*.zip" -x="onesignal-free-web-push-notifications" ${RELEASE_ARCHIVE_FILENAME} ./*
cd -