123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- /**
- * Copyright © 2016-2023 The Thingsboard Authors
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import org.apache.tools.ant.filters.ReplaceTokens
- plugins {
- id "nebula.ospackage" version "8.6.3"
- }
- buildDir = projectBuildDir
- version = projectVersion
- distsDirName = "./"
- // OS Package plugin configuration
- ospackage {
- packageName = pkgName
- version = "${project.version}"
- release = 1
- os = LINUX
- type = BINARY
- into pkgInstallFolder
- user pkgUser
- permissionGroup pkgUser
- // Copy the actual .jar file
- from(mainJar) {
- // Strip the version from the jar filename
- rename { String fileName ->
- "${pkgName}.jar"
- }
- fileMode 0500
- into "bin"
- }
- if("${pkgCopyInstallScripts}".equalsIgnoreCase("true")) {
- // Copy the install files
- from("${buildDir}/bin/install/install.sh") {
- fileMode 0775
- into "bin/install"
- }
- from("${buildDir}/bin/install/upgrade.sh") {
- fileMode 0775
- into "bin/install"
- }
- from("${buildDir}/bin/install/logback.xml") {
- into "bin/install"
- }
- }
- // Copy the config files
- from("${buildDir}/conf") {
- exclude "${pkgName}.conf"
- fileType CONFIG | NOREPLACE
- fileMode 0754
- into "conf"
- }
- // Copy the data files
- from("${buildDir}/data") {
- fileType CONFIG | NOREPLACE
- fileMode 0754
- into "data"
- }
- // Copy the extensions files
- from("${buildDir}/extensions") {
- into "extensions"
- }
- }
- // Configure our RPM build task
- buildRpm {
- arch = NOARCH
- archiveVersion = projectVersion.replace('-', '')
- archiveFileName = "${pkgName}.rpm"
- requires("java-11")
- from("${buildDir}/conf") {
- include "${pkgName}.conf"
- filter(ReplaceTokens, tokens: ['pkg.platform': 'rpm'])
- fileType CONFIG | NOREPLACE
- fileMode 0754
- into "${pkgInstallFolder}/conf"
- }
- preInstall file("${buildDir}/control/rpm/preinst")
- postInstall file("${buildDir}/control/rpm/postinst")
- preUninstall file("${buildDir}/control/rpm/prerm")
- postUninstall file("${buildDir}/control/rpm/postrm")
- user pkgUser
- permissionGroup pkgUser
- // Copy the system unit files
- from("${buildDir}/control/template.service") {
- addParentDirs = false
- fileMode 0644
- into "/usr/lib/systemd/system"
- rename { String filename ->
- "${pkgName}.service"
- }
- }
- link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
- link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
- }
- // Same as the buildRpm task
- buildDeb {
- arch = "all"
- archiveFileName = "${pkgName}.deb"
- requires("openjdk-11-jre").or("java11-runtime").or("oracle-java11-installer").or("openjdk-11-jre-headless")
- from("${buildDir}/conf") {
- include "${pkgName}.conf"
- filter(ReplaceTokens, tokens: ['pkg.platform': 'deb'])
- fileType CONFIG | NOREPLACE
- fileMode 0754
- into "${pkgInstallFolder}/conf"
- }
- configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
- configurationFile("${pkgInstallFolder}/conf/${pkgName}.yml")
- configurationFile("${pkgInstallFolder}/conf/logback.xml")
- configurationFile("${pkgInstallFolder}/conf/actor-system.conf")
- preInstall file("${buildDir}/control/deb/preinst")
- postInstall file("${buildDir}/control/deb/postinst")
- preUninstall file("${buildDir}/control/deb/prerm")
- postUninstall file("${buildDir}/control/deb/postrm")
- user pkgUser
- permissionGroup pkgUser
- // Copy the system unit files
- from("${buildDir}/control/template.service") {
- addParentDirs = false
- fileMode 0644
- into "/lib/systemd/system"
- rename { String filename ->
- "${pkgName}.service"
- }
- }
- link("${pkgInstallFolder}/bin/${pkgName}.yml", "${pkgInstallFolder}/conf/${pkgName}.yml")
- link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
- }
|