Open-source IoT Platform - Device management, data collection, processing and visualization.
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

/**
* 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")
}