dashboardjavacloudcoapiotiot-analyticsiot-platformiot-solutionskafkalwm2mmicroservicesmiddlewaremqttnettyplatformsnmpthingsboardvisualizationwebsocketswidgets
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
3.5 KiB
139 lines
3.5 KiB
/**
|
|
* Copyright © 2016-2026 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.
|
|
*/
|
|
|
|
plugins {
|
|
id "com.netflix.nebula.ospackage" version "12.1.1"
|
|
}
|
|
|
|
buildDir = projectBuildDir
|
|
version = projectVersion
|
|
base {
|
|
distsDirectory = layout.buildDirectory.dir("./")
|
|
}
|
|
|
|
// OS Package plugin configuration
|
|
ospackage {
|
|
packageName = pkgName
|
|
version = "${project.version}"
|
|
release = 1
|
|
os = LINUX
|
|
type = BINARY
|
|
|
|
into pkgInstallFolder
|
|
|
|
user = pkgUser
|
|
permissionGroup = pkgUser
|
|
|
|
// Copy the executable file
|
|
from("${buildDir}/package/linux/bin/${pkgName}") {
|
|
filePermissions {
|
|
unix('r-x------') // 0500
|
|
}
|
|
into "bin"
|
|
}
|
|
|
|
// Copy the init file
|
|
from("${buildDir}/package/linux/init/template") {
|
|
filePermissions {
|
|
unix('r-x------') // 0500
|
|
}
|
|
into "init"
|
|
rename { String filename ->
|
|
"${pkgName}"
|
|
}
|
|
}
|
|
|
|
// Copy the config files
|
|
from("${buildDir}/package/linux/conf") {
|
|
fileType CONFIG | NOREPLACE
|
|
filePermissions {
|
|
unix('rwxr-xr--') // 0754
|
|
}
|
|
into "conf"
|
|
}
|
|
|
|
// Copy web files
|
|
from("${buildDir}/web") {
|
|
into "web"
|
|
}
|
|
|
|
}
|
|
|
|
// Configure our RPM build task
|
|
buildRpm {
|
|
|
|
arch = X86_64
|
|
|
|
archiveVersion = projectVersion.replace('-', '')
|
|
archiveFileName = "${pkgName}.rpm"
|
|
|
|
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
|
|
filePermissions {
|
|
unix('rw-r--r--') // 0644
|
|
}
|
|
into "/usr/lib/systemd/system"
|
|
rename { String filename ->
|
|
"${pkgName}.service"
|
|
}
|
|
}
|
|
|
|
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
|
|
}
|
|
|
|
// Same as the buildRpm task
|
|
buildDeb {
|
|
|
|
arch = "amd64"
|
|
|
|
archiveFileName = "${pkgName}.deb"
|
|
|
|
configurationFile("${pkgInstallFolder}/conf/${pkgName}.conf")
|
|
configurationFile("${pkgInstallFolder}/conf/custom-environment-variables.yml")
|
|
configurationFile("${pkgInstallFolder}/conf/default.yml")
|
|
configurationFile("${pkgInstallFolder}/conf/logger.js")
|
|
|
|
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
|
|
filePermissions {
|
|
unix('rw-r--r--') // 0644
|
|
}
|
|
into "/lib/systemd/system"
|
|
rename { String filename ->
|
|
"${pkgName}.service"
|
|
}
|
|
}
|
|
|
|
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
|
|
}
|
|
|