diff --git a/.gitignore b/.gitignore index 0d32c6c..ff48685 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,20 @@ bin **/.DS_Store .idea/ run/ + +# Ignore package building artifacts +build_packages/* + +# ... Except build_packages/NSIS/ProgressiaInstaller.nsi +!build_packages/NSIS +build_packages/NSIS/* +!build_packages/NSIS/ProgressiaInstaller.nsi + +# ... and except build_packages/DEB/progressia-*/DEBIAN/control +!build_packages/DEB +build_packages/DEB/* +!build_packages/DEB/progressia-* +build_packages/DEB/progressia-*/* +!build_packages/DEB/progressia-*/DEBIAN +build_packages/DEB/progressia-*/DEBIAN/* +!build_packages/DEB/progressia-*/DEBIAN/control diff --git a/build.gradle b/build.gradle index f442d6d..5e6af25 100644 --- a/build.gradle +++ b/build.gradle @@ -97,4 +97,12 @@ task copyLibs(type: Copy) { from configurations.runtimeClasspath } +task createPackages(type: Exec) { + commandLine './buildPackages.sh' +} + + build.dependsOn(copyLibs) + + + diff --git a/buildPackages.sh b/buildPackages.sh new file mode 100755 index 0000000..5c7c898 --- /dev/null +++ b/buildPackages.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +lst="nsis" + +user=`whoami` + +dpkg -l 2>/dev/null > ls.tmp + +for items in $lst +do + cmd=$(grep "\ $items\ " ls.tmp) + if [ $? == 0 ] + then + echo "$items installed!" + echo "Building..." + else + echo "Package $items not found! Please install $items." + rm ls.tmp + exit 1 + fi +done +rm ls.tmp + +cd build_packages/DEB/progressia-0.1_all/ +mkdir -p home/$user/Progressia + +cd ../../.. + +cp -r build/libs/lib build_packages/DEB/progressia-0.1_all/home/$user/Progressia/ +cp build/libs/Progressia.jar build_packages/DEB/progressia-0.1_all/home/$user/Progressia/ +cp -r build/libs/lib build_packages/NSIS +cp build/libs/Progressia.jar build_packages/NSIS + +makensis build_packages/NSIS/ProgressiaInstaller.nsi +mv build_packages/NSIS/ProgressiaInstaller.exe build_packages/Progressia.exe +fakeroot dpkg-deb --build build_packages/DEB/progressia-0.1_all +mv build_packages/DEB/progressia-0.1_all.deb build_packages/progressia-0.1_all.deb +echo "Build done!" diff --git a/build_packages/DEB/progressia-0.1_all/DEBIAN/control b/build_packages/DEB/progressia-0.1_all/DEBIAN/control new file mode 100644 index 0000000..f655a6a --- /dev/null +++ b/build_packages/DEB/progressia-0.1_all/DEBIAN/control @@ -0,0 +1,8 @@ +Package: Progressia +Version: 0.1 +Section: custom +Priority: optional +Architecture: all +Essential: no +Maintainer: Test +Description: Test package diff --git a/build_packages/NSIS/ProgressiaInstaller.nsi b/build_packages/NSIS/ProgressiaInstaller.nsi new file mode 100644 index 0000000..a819bb1 --- /dev/null +++ b/build_packages/NSIS/ProgressiaInstaller.nsi @@ -0,0 +1,100 @@ +;NSIS Modern User Interface +;Welcome/Finish Page Example Script +;Written by Joost Verburg + +;-------------------------------- +;Include Modern UI + + !include "MUI2.nsh" + +;-------------------------------- +;General + + ;Name and file + Name "Progressia" + OutFile "ProgressiaTestInstaller.exe" + Unicode True + + ;Default installation folder + InstallDir "$PROGRAMFILES\Progressia" + + ;Get installation folder from registry if available + InstallDirRegKey HKLM "Software\Progressia" "Install_Dir" + + ;Request application privileges for Windows Vista + RequestExecutionLevel admin + +;-------------------------------- +;Interface Settings + + !define MUI_ABORTWARNING + +;-------------------------------- +;Pages + + !insertmacro MUI_PAGE_WELCOME + ;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt" + !insertmacro MUI_PAGE_COMPONENTS + !insertmacro MUI_PAGE_DIRECTORY + !insertmacro MUI_PAGE_INSTFILES + !insertmacro MUI_PAGE_FINISH + + !insertmacro MUI_UNPAGE_WELCOME + !insertmacro MUI_UNPAGE_CONFIRM + !insertmacro MUI_UNPAGE_INSTFILES + !insertmacro MUI_UNPAGE_FINISH + +;-------------------------------- +;Languages + + !insertmacro MUI_LANGUAGE "English" + +;-------------------------------- +;Installer Sections + +Section "Install Progressia" SecDummy + + SetOutPath "$INSTDIR" + + ;Files + File Progressia.jar + File /r lib + + ;Store installation folder + WriteRegStr HKLM SOFTWARE\Progressia "Install_Dir" "$INSTDIR" + + ;Create uninstaller + + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" "DisplayName" "Progressia (remove only)" + WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" "UninstallString" "$INSTDIR\Uninstall.exe" + WriteUninstaller "$INSTDIR\Uninstall.exe" + +SectionEnd + +;-------------------------------- +;Descriptions + + ;Language strings + LangString DESC_SecDummy ${LANG_ENGLISH} "A test section." + + ;Assign language strings to sections + !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN + !insertmacro MUI_DESCRIPTION_TEXT ${SecDummy} $(DESC_SecDummy) + !insertmacro MUI_FUNCTION_DESCRIPTION_END + +;-------------------------------- +;Uninstaller Section + +Section "Uninstall" + + ;ADD YOUR OWN FILES HERE... + + Delete $INSTDIR\Uninstall.exe + Delete $INSTDIR\Progressia.jar + Delete $INSTDIR\lib\*.* + + RMDir /r "$INSTDIR" + DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Progressia" + DeleteRegKey HKLM "Software\Progressia" + +SectionEnd