/* * This file is a part of the SteamWar software. * * Copyright (C) 2020 SteamWar.de-Serverteam * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ import org.apache.tools.ant.taskdefs.condition.Os plugins { // Adding the base plugin fixes the following gradle warnings in IntelliJ: // // Warning: root project 'module-work-multi': Unable to resolve all content root directories // Details: java.lang.IllegalStateException: No value has been specified for this provider. // // Warning: root project 'module-work-multi': Unable to resolve additional project configuration. // Details: java.lang.IllegalStateException: No value has been specified for this provider. id 'base' id 'application' id 'com.github.johnrengelman.shadow' version '5.0.0' } group 'steamwar' version '' ext { artifact = 'BauSystem' uberJarName = "${artifact}-all.jar" jarName = "${artifact}.jar" libs = "${buildDir}/libs" if (Os.isFamily(Os.FAMILY_WINDOWS)) { operatinSystem = "windows" } else { operatinSystem = "unix" } } compileJava.options.encoding = 'UTF-8' sourceCompatibility = 1.8 targetCompatibility = 1.8 mainClassName = '' allprojects { repositories { mavenCentral() jcenter() } } dependencies { implementation project(":BauSystem_Main") } task buildProject { description 'Build this project' group "Steamwar" dependsOn build } task finalizeProject { description 'Finalize this project' group "Steamwar" doLast { if ("${buildDir}" == null) { return } delete fileTree("${libs}").matching { exclude("${uberJarName}") } file(libs + "/" + uberJarName).renameTo(file(libs + "/" + jarName)) } } build.finalizedBy(finalizeProject) if (project.hasProperty("hostname")) { task uploadProject { description 'Upload this project' group "Steamwar" doLast { shell("scp ${libs}/${jarName} ${hostname}:~/Dev1.15/plugins") if (!answer("Start DEV server?")) { return } shell("ssh ${hostname} \"./mc Dev1.15\"") } } } /** * Executes a shell command and returns the stdout result. * * @param command the command to execute (cannot contain pipes) * @return the trimmed result from stdout, stderr and the exit value */ def shell(String command) { def proc if (operatinSystem == "unix") { proc = ['bash', '-c', command].execute() } else { proc = [command].execute() } def out = new StringBuilder() def err = new StringBuilder() proc.waitForProcessOutput(out, err) return [out.toString().trim(), err.toString().trim(), proc.exitValue()] } def answer(String question) { while (System.in.available() > 0) System.in.read() println(question) return "Yy".contains(((char) System.in.read()).toString()) }