import java.nio.file.Path import java.time.LocalDateTime import java.time.format.DateTimeFormatter ext.getCurrentVersion = { String tagIsh = "dev-unknown" try { tagIsh = providers.exec { commandLine 'git', 'describe', '--tags', '--match=v*' }.standardOutput.asText.get().trim().toLowerCase() } catch (Exception ignored) { tagIsh = "dev-unknown" } // Dev tags: v2021.1.6-3-gf922466d // We're specifically looking to capture the middle -3- boolean isDev = tagIsh.matches(".*-[0-9]*-g[0-9a-f]*") if (isDev && !tagIsh.startsWith("dev-")) tagIsh = "dev-" + tagIsh println("Picked up version: " + tagIsh) return tagIsh } if (!ext.has("versionString")) { ext.versionString = getCurrentVersion() } ext.writePhotonVersionFile = {File versionFileIn, Path path, String version -> println("Writing " + version + " to " + path.toAbsolutePath().toString()) String date = DateTimeFormatter.ofPattern("yyyy-M-d hh:mm:ss").format(LocalDateTime.now()) File versionFileOut = new File(path.toAbsolutePath().toString()) versionFileOut.delete() def read = versionFileIn.text .replace('${version}', version) .replace('${date}', date) .replace('${wpilibVersion}', wpilibVersion) // Note that OpenCV is usually {VERSION}-{some suffix}, we just want the first bit .replace('${opencvVersion}', openCVversion.split("-").first()) if (!versionFileOut.parentFile.exists()) versionFileOut.parentFile.mkdirs() if (!versionFileOut.exists()) versionFileOut.createNewFile() versionFileOut.write(read) }