147 lines
3.6 KiB
Groovy
147 lines
3.6 KiB
Groovy
/**
|
|
* Copyright © 2016-2020 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
|
|
|
|
buildscript {
|
|
ext {
|
|
osPackageVersion = "8.3.0"
|
|
}
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath("com.netflix.nebula:gradle-ospackage-plugin:${osPackageVersion}")
|
|
}
|
|
}
|
|
|
|
apply plugin: "nebula.ospackage"
|
|
|
|
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 executable file
|
|
from("${buildDir}/package/linux/bin/${pkgName}") {
|
|
fileMode 0500
|
|
into "bin"
|
|
}
|
|
|
|
// Copy the init file
|
|
from("${buildDir}/package/linux/init/template") {
|
|
fileMode 0500
|
|
into "init"
|
|
rename { String filename ->
|
|
"${pkgName}"
|
|
}
|
|
}
|
|
|
|
// Copy the config files
|
|
from("${buildDir}/package/linux/conf") {
|
|
fileType CONFIG | NOREPLACE
|
|
fileMode 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/${pkgName}.service") {
|
|
addParentDirs = false
|
|
fileMode 0644
|
|
into "/usr/lib/systemd/system"
|
|
}
|
|
|
|
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
|
|
|
|
link("/etc/init.d/${pkgName}", "${pkgInstallFolder}/init/${pkgName}")
|
|
link("/etc/${pkgName}/conf", "${pkgInstallFolder}/conf")
|
|
}
|
|
|
|
task renameDeb(type: Copy) {
|
|
from("${buildDir}/") {
|
|
include '*.deb'
|
|
destinationDir file("${buildDir}/")
|
|
rename { String filename ->
|
|
"${pkgName}.deb"
|
|
}
|
|
}
|
|
}
|
|
|
|
task renameRpm(type: Copy) {
|
|
from("${buildDir}/") {
|
|
include '*.rpm'
|
|
destinationDir file("${buildDir}/")
|
|
rename { String filename ->
|
|
"${pkgName}.rpm"
|
|
}
|
|
}
|
|
}
|