-
Notifications
You must be signed in to change notification settings - Fork 2.3k
/
build-neo4j-desktop
executable file
·115 lines (100 loc) · 5.45 KB
/
build-neo4j-desktop
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/env bash
set -exu
# build-neo4j-desktop:
# Build Neo4j Desktop for either Mac or Windows
if [ $# -lt 7 ]
then
echo "Usage: ${0} <workspace> <uberjar> <license file> <shell scripts directory> <cypher shell directory> <version> <media type> [keystore file] [keystore password]"
exit 1
fi
workspace=${1}
uberjar=${2}
license_file=${3}
shell_scripts_directory=${4}
cypher_shell_directory=${5}
version=${6}
media_type=${7}
keystore_file=${8-}
keystore_password=${9-}
version=$(cat ${version})
uberjar=$(cat ${uberjar})
## Prepare workspace
# Create directory structure
mkdir -p ${workspace}/cypher-shell/tools
mkdir -p ${workspace}/images
mkdir -p ${workspace}/licenses
mkdir -p ${workspace}/plugins
mkdir -p ${workspace}/shell-scripts/{tools,Neo4j-Management}
# Copy in überjar
cp ${uberjar} ${workspace}
# install4j manifest
cp src/neo4j-desktop/neo4j-desktop.install4j ${workspace}
cp src/neo4j-desktop/install.properties ${workspace}
cp src/neo4j-desktop/messages_en.utf8 ${workspace}
cp src/neo4j-desktop/neo4j-community.vmoptions ${workspace}
# Copy in images
cp src/neo4j-desktop/images/* ${workspace}/images
# Put licenses in place
dos2unix --newfile ${license_file} ${workspace}/licenses/LICENSE.txt
dos2unix --newfile src/neo4j-desktop/licenses/LICENSES.txt ${workspace}/licenses/LICENSES.txt
dos2unix --newfile src/neo4j-desktop/licenses/NOTICE.txt ${workspace}/licenses/NOTICE.txt
# Plugins documentation
dos2unix --newfile src/neo4j-desktop/plugins/README.txt ${workspace}/plugins/README.txt
# Cypher shell
cp ${cypher_shell_directory}/cypher-shell ${workspace}/cypher-shell/
cp ${cypher_shell_directory}/*.jar ${workspace}/cypher-shell/tools
dos2unix --newfile ${cypher_shell_directory}/cypher-shell.bat ${workspace}/cypher-shell/cypher-shell.bat
# Unix scripts
cp ${shell_scripts_directory}/neo4j-admin ${workspace}/shell-scripts
cp ${shell_scripts_directory}/neo4j-backup ${workspace}/shell-scripts
cp ${shell_scripts_directory}/neo4j-import ${workspace}/shell-scripts
cp ${shell_scripts_directory}/neo4j-shell ${workspace}/shell-scripts
cp ${shell_scripts_directory}/neo4j-shared.sh ${workspace}/shell-scripts
cp ${shell_scripts_directory}/tools/2.x-config-migrator.jar ${workspace}/shell-scripts/tools
# Windows scripts
cp ${shell_scripts_directory}/Neo4j-Management.psd1 ${workspace}/shell-scripts
cp ${shell_scripts_directory}/Neo4j-Management/Get-Java.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-KeyValuePairsFromConfFile.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-Neo4jEnv.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Set-Neo4jEnv.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-Neo4jServer.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-Neo4jSetting.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-Neo4jStatus.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Get-Neo4jWindowsServiceName.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Install-Neo4jServer.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4j.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4jAdmin.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4jBackup.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4jImport.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4jShell.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Invoke-Neo4jUtility.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Neo4j-Management.psm1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Start-Neo4jServer.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Stop-Neo4jServer.ps1 ${workspace}/shell-scripts/Neo4j-Management
cp ${shell_scripts_directory}/Neo4j-Management/Uninstall-Neo4jServer.ps1 ${workspace}/shell-scripts/Neo4j-Management
dos2unix --newfile ${shell_scripts_directory}/neo4j-admin.bat ${workspace}/shell-scripts/neo4j-admin.bat
dos2unix --newfile ${shell_scripts_directory}/neo4j-backup.bat ${workspace}/shell-scripts/neo4j-backup.bat
dos2unix --newfile ${shell_scripts_directory}/neo4j-import.bat ${workspace}/shell-scripts/neo4j-import.bat
dos2unix --newfile ${shell_scripts_directory}/neo4j-shell.bat ${workspace}/shell-scripts/neo4j-shell.bat
# Stage signing parameter
if [ -z "$keystore_password" ]
then
keystore_password_parameter="--disable-signing"
elif [ ${media_type} = "macosArchive" ]
then
keystore_password_parameter="--mac-keystore-password ${keystore_password}"
elif [ ${media_type} = "windows" ]
then
keystore_password_parameter="--win-keystore-password ${keystore_password}"
else
echo "unknown media type: '${media_type}'" 1>&2
exit 1
fi
## Execute install4j
(cd ${workspace} && install4jc \
--media-types=${media_type} \
--release=${version} \
--verbose \
-D keystore-file=${keystore_file},neo4j-version=${version} \
${keystore_password_parameter} \
neo4j-desktop.install4j)