| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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. |
| */ |
| |
| def getCommitHash(File workingDir) { |
| try { |
| def process = 'git rev-parse HEAD'.execute(null, workingDir) |
| int exitValue = process.waitFor() |
| if (exitValue == 0) { |
| return process.text.trim() |
| } |
| } catch (Exception e) { |
| // Git command not found or failed |
| } |
| return "unknown" |
| } |
| |
| def createVersionFile = tasks.register('createVersionFile') { |
| def commitHash = project.hasProperty("lastCommitHash") |
| ? project.property("lastCommitHash") |
| : getCommitHash(project.rootDir) |
| |
| def versionFileName = "ignite.version.full" |
| def versionFile = file("$buildDir/$versionFileName") |
| |
| if (versionFile.exists()) { |
| versionFile.delete() |
| } |
| |
| doLast { |
| versionFile << project.version + "-sha1:" + commitHash |
| } |
| |
| outputs.file versionFile |
| } |
| |
| // make processResources depends on createExtraFilesIndex task |
| processResources { |
| from createVersionFile |
| } |