diff options
Diffstat (limited to 'setup/package.sh')
-rwxr-xr-x | setup/package.sh | 175 |
1 files changed, 81 insertions, 94 deletions
diff --git a/setup/package.sh b/setup/package.sh index 928a6e5b1..acbac434b 100755 --- a/setup/package.sh +++ b/setup/package.sh @@ -23,8 +23,7 @@ check_requirement () { } check_requirement "ls ../../ext-6.0.1" "Missing ../../ext-6.0.1 (https://www.sencha.com/legal/GPL/)" -check_requirement "ls wrapper-delta-pack-*.tar.gz" "Missing wrapper-delta-pack-*.tar.gz (http://wrapper.tanukisoftware.com/doc/english/download.jsp)" -check_requirement "ls wrapper-windows-x86-64-*.zip" "Missing wrapper-windows-x86-64-*.zip (http://www.krenger.ch/blog/tag/java-service-wrapper/)" +check_requirement "ls yajsw-*.zip" "Missing yajsw-*.zip (http://yajsw.sourceforge.net/)" check_requirement "ls innosetup-*.exe" "Missing isetup-*.exe (http://www.jrsoftware.org/isdl.php)" check_requirement "which sencha" "Missing sencha cmd package (https://www.sencha.com/products/extjs/cmd-download/)" check_requirement "which wine" "Missing wine package" @@ -32,131 +31,123 @@ check_requirement "which innoextract" "Missing innoextract package" check_requirement "which makeself" "Missing makeself package" prepare () { + unzip yajsw-*.zip + mv yajsw-*/ yajsw/ - tar -xzf wrapper-delta-pack-*.tar.gz - mv wrapper-delta-pack-*/ wrapper/ - - ../tools/minify.sh + ../web/../tools/minify.sh innoextract innosetup-*.exe - echo "If you got any errors here try isetup version 5.5.5 (or check what versions are supported by 'innoextract -v')" + echo "If you got any errors here try isetup version 5.5.5 (or check supported versions using 'innoextract -v')" } cleanup () { - - rm -rf wrapper/ + rm -r yajsw/ rm ../web/app.min.js - rm -rf app/ + rm -r app/ } -prepare_windows_64 () { - unzip wrapper-windows-x86-64-*.zip - cp wrapper-windows-*/bin/wrapper.exe wrapper/bin/wrapper-windows-x86-32.exe - cp wrapper-windows-*/lib/wrapper.dll wrapper/lib/wrapper-windows-x86-32.dll - cp wrapper-windows-*/lib/wrapper.jar wrapper/lib/wrapper.jar - rm -rf wrapper-windows-*/ -} +copy_wrapper () { + cp yajsw/$1/setenv* out/$1 + cp yajsw/$1/wrapper* out/$1 + cp yajsw/$1/install* out/$1 + cp yajsw/$1/start* out/$1 + cp yajsw/$1/stop* out/$1 + cp yajsw/$1/uninstall* out/$1 -prepare_linux_32 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-linux-x86-32 out/bin/wrapper - cp wrapper/lib/libwrapper-linux-x86-32.so out/lib/libwrapper.so -} + chmod +x out/$1/* -prepare_linux_64 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-linux-x86-64 out/bin/wrapper - cp wrapper/lib/libwrapper-linux-x86-64.so out/lib/libwrapper.so -} + cp yajsw/conf/wrapper.conf.default out/conf -prepare_linux_arm () { - cp unix/linux-arm-setup.sh out/setup.sh - cp wrapper/bin/wrapper-linux-armel-32 out/bin - cp wrapper/bin/wrapper-linux-armhf-32 out/bin - cp wrapper/lib/libwrapper-linux-armel-32.so out/lib - cp wrapper/lib/libwrapper-linux-armhf-32.so out/lib -} + touch out/conf/wrapper.conf + echo "wrapper.java.command=java" >> out/conf/wrapper.conf + echo "wrapper.java.app.jar=tracker-server.jar" >> out/conf/wrapper.conf + echo "wrapper.app.parameter.1=./conf/traccar.xml" >> out/conf/wrapper.conf + echo "wrapper.java.additional.1=-Dfile.encoding=UTF-8" >> out/conf/wrapper.conf + echo "wrapper.logfile=logs/wrapper.log.YYYYMMDD" >> out/conf/wrapper.conf + echo "wrapper.logfile.rollmode=DATE" >> out/conf/wrapper.conf + echo "wrapper.ntservice.name=traccar" >> out/conf/wrapper.conf + echo "wrapper.ntservice.displayname=Traccar" >> out/conf/wrapper.conf + echo "wrapper.ntservice.description=Traccar" >> out/conf/wrapper.conf -prepare_macosx_64 () { - cp unix/setup.sh out - cp wrapper/bin/wrapper-macosx-universal-64 out/bin/wrapper - cp wrapper/lib/libwrapper-macosx-universal-64.jnilib out/lib/libwrapper.jnilib -} + cp -r yajsw/lib/core out/lib + rm out/lib/core/ReadMe.txt -package_windows () { + cp -r yajsw/lib/extended out/lib + rm out/lib/extended/ReadMe.txt - if [ "$#" -gt 1 ] - then - eval $2 - fi + cp yajsw/templates/* out/templates - wine app/ISCC.exe windows/traccar.iss + cp yajsw/wrapper*.jar out - zip -j traccar-$1-$VERSION.zip windows/Output/traccar-setup.exe README.txt - - rm -rf windows/Output/ - rm -rf tmp/ + if which xattr &>/dev/null + then + xattr -dr com.apple.quarantine out + fi } -package_unix () { - - mkdir -p out/{bin,conf,data,lib,logs,web,schema} - - cp wrapper/src/bin/sh.script.in out/bin/traccar - cp wrapper/lib/wrapper.jar out/lib - cp wrapper/src/conf/wrapper.conf.in out/conf/wrapper.conf - - sed -i.bak 's/tail -1/tail -n 1/g' out/bin/traccar - chmod +x out/bin/traccar - +copy_files () { cp ../target/tracker-server.jar out cp ../target/lib/* out/lib cp ../schema/* out/schema cp -r ../web/* out/web - cp unix/traccar.xml out/conf + cp traccar.xml out/conf +} - sed -i.bak 's/@app.name@/traccar/g' out/bin/traccar - sed -i.bak 's/@app.long.name@/traccar/g' out/bin/traccar +package_windows () { + mkdir -p out/{bat,conf,data,lib,logs,web,schema,templates} + + copy_wrapper "bat" + copy_files - sed -i.bak '/wrapper.java.classpath.1/a\ -wrapper.java.classpath.2=../tracker-server.jar' out/conf/wrapper.conf - sed -i.bak '/wrapper.app.parameter.1/a\ -wrapper.app.parameter.2=../conf/traccar.xml' out/conf/wrapper.conf - sed -i.bak 's/wrapper.java.additional.1=/wrapper.java.additional.1=-Dfile.encoding=UTF-8/g' out/conf/wrapper.conf - sed -i.bak 's/<YourMainClass>/org.traccar.Main/g' out/conf/wrapper.conf - sed -i.bak 's/@app.name@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/@app.long.name@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/@app.description@/traccar/g' out/conf/wrapper.conf - sed -i.bak 's/wrapper.logfile=..\/logs\/wrapper.log/wrapper.logfile=..\/logs\/wrapper.log.YYYYMMDD\ -wrapper.logfile.rollmode=DATE/g' out/conf/wrapper.conf + wine app/ISCC.exe traccar.iss - rm out/bin/traccar.bak - rm out/conf/wrapper.conf.bak + zip -j traccar-windows-$VERSION.zip Output/traccar-setup.exe README.txt - eval $2 + rm -r Output + rm -r tmp + rm -r out +} - makeself out traccar.run "traccar" "chmod +x setup.sh ; ./setup.sh" - zip -j traccar-$1-$VERSION.zip traccar.run README.txt +package_unix () { + mkdir -p out/{bin,conf,data,lib,logs,web,schema,templates} + + copy_wrapper "bin" + copy_files + + makeself out traccar.run "traccar" "\ +if which java &>/dev/null ; \ +then \ +if [ \$(java -version 2>&1 | grep -i version | sed 's/.*version \"\(.*\)\.\(.*\)\..*\"/\1\2/; 1q') -lt 17 ] ; \ +then \ +echo 'Java 7 or higher required' ; \ +else \ +mkdir -p /opt/traccar ; \ +cp -r * /opt/traccar ; \ +chmod -R go+rX /opt/traccar ; \ +/opt/traccar/bin/installDaemon.sh ; \ +fi ; \ +else \ +echo 'Java runtime is required' ; \ +fi" + + zip -j traccar-linux-$VERSION.zip traccar.run README.txt + cp traccar-linux-$VERSION.zip traccar-macos-$VERSION.zip rm traccar.run - rm -rf out/ + rm -r out } package_universal () { - mkdir -p out/{conf,data,lib,logs,web,schema} - cp ../target/tracker-server.jar out - cp ../target/lib/* out/lib - cp ../schema/* out/schema - cp -r ../web/* out/web - cp windows/traccar.xml out/conf + copy_files + cp README.txt out cd out - zip -r ../traccar-$1-$VERSION.zip * README.txt + zip -r ../traccar-other-$VERSION.zip * cd .. rm -rf out/ @@ -164,12 +155,8 @@ package_universal () { prepare -package_windows "windows-32" -package_windows "windows-64" "prepare_windows_64" -package_unix "linux-32" "prepare_linux_32" -package_unix "linux-64" "prepare_linux_64" -package_unix "linux-arm" "prepare_linux_arm" -package_unix "macosx-64" "prepare_macosx_64" -package_universal "other" +package_windows +package_unix +package_universal cleanup |