-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·79 lines (64 loc) · 2.15 KB
/
build.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
# Get package versions
PACKAGE_NAME=$(sed -nE 's/^\s*"name": "(.*?)",$/\1/p' package.json)
PACKAGE_VERSION=$(sed -nE 's/^\s*"version": "(.*?)",$/\1/p' package.json)
# Directories
DIST_DIR="dist"
LINUX_DIR="${PACKAGE_NAME}-${PACKAGE_VERSION}-linux-x64"
OSX_DIR="${PACKAGE_NAME}-${PACKAGE_VERSION}-mac-x64"
LINUX_ARCHIVE_FILE="${DIST_DIR}/${LINUX_DIR}.tar.xz"
OSX_ARCHIVE_FILE="${DIST_DIR}/${OSX_DIR}.tar.xz"
######################################################################
# Functions
#
make_linux_archive() {
# Create tar.xz file
echo "-> Create Linux_x64 archive..."
tar -C "$DIST_DIR" -cJf "$LINUX_ARCHIVE_FILE" "$LINUX_DIR"
}
make_osx_archive() {
# Create tar.xz file
echo "-> Create Mac_x64 archive..."
tar -C "$DIST_DIR/$OSX_DIR" -cJf "$OSX_ARCHIVE_FILE" "${PACKAGE_NAME}.app"
}
make_linux_installer() {
echo "-> Create Linux_x64 installer..."
INSTALLER_FILE="$DIST_DIR/installer-${LINUX_DIR}.run"
cp ./scripts/linux_installer.sh "$INSTALLER_FILE"
sed -i "s/{{PACKAGE_NAME}}/${PACKAGE_NAME}/g" "$INSTALLER_FILE"
sed -i "s/{{PACKAGE_VERSION}}/${PACKAGE_VERSION}/g" "$INSTALLER_FILE"
sed -i "s/{{APP_DIR}}/${LINUX_DIR}/g" "$INSTALLER_FILE"
# Append archive to installer script
cat "$LINUX_ARCHIVE_FILE" >> "$INSTALLER_FILE"
chmod +x "$INSTALLER_FILE"
}
make_linux_uninstaller() {
echo "-> Create Linux_x64 uninstaller..."
UNINSTALL_FILE="${DIST_DIR}/${LINUX_DIR}/uninstall.sh"
cp ./scripts/linux_uninstaller.sh "$UNINSTALL_FILE"
sed -i "s/{{PACKAGE_NAME}}/${PACKAGE_NAME}/g" "$UNINSTALL_FILE"
sed -i "s/{{PACKAGE_VERSION}}/${PACKAGE_VERSION}/g" "$UNINSTALL_FILE"
chmod +x "$UNINSTALL_FILE"
}
######################################################################
# Entry Point
#
# Run build script
npm run build:x64
# Fix permissions for Linux
chmod +x "${DIST_DIR}/${LINUX_DIR}/chrome_crashpad_handler"
# Make uninstall script for linux
make_linux_uninstaller
# Remove credits files
rm "$DIST_DIR/$LINUX_DIR/credits.html"
rm "$DIST_DIR/$OSX_DIR/credits.html"
# Make archives
make_linux_archive &
make_osx_archive &
wait
# Make Installer script for linux
make_linux_installer
wait
echo ""
echo "Build complete."
echo ""