From a7ef919a5c813e3a3d8b656f5c5b280aa9dcf5f9 Mon Sep 17 00:00:00 2001 From: Joseph Eng <91924258+KangarooKoala@users.noreply.github.com> Date: Sun, 2 Apr 2023 21:14:05 -0700 Subject: [PATCH] Print git info --- .gitignore | 3 +++ build.gradle | 28 +++++++++++++++++++++ src/main/java/frc/team2412/robot/Robot.java | 14 +++++++++++ 3 files changed, 45 insertions(+) diff --git a/.gitignore b/.gitignore index 13cedb39..8ff9b935 100644 --- a/.gitignore +++ b/.gitignore @@ -180,3 +180,6 @@ local.properties # Don't know what's creating this .project + +# Generated git info file +src/main/deploy/git-info.txt diff --git a/build.gradle b/build.gradle index 479ffb42..e6f65d68 100644 --- a/build.gradle +++ b/build.gradle @@ -134,6 +134,34 @@ spotless { trimTrailingWhitespace(); } } + +task writeGitInfo { + def addGitOutput = { PrintStream output, String name, String... args -> + output.println("### $name (git ${String.join(' ', args)})") + def execOutput = new ByteArrayOutputStream() + def ex = exec { + workingDir projectDir + executable 'git' + delegate.args args + standardOutput = execOutput + } + output.print(execOutput) + } + + doLast { + try (PrintStream output = new PrintStream('src\\main\\deploy\\git-info.txt')) { + addGitOutput(output, 'Latest commit', 'log', '-1', '--decorate=short', '--format=medium') + addGitOutput(output, 'Changed files', 'diff-index', '--name-only', 'HEAD', '--') + addGitOutput(output, 'Untracked files', 'ls-files', '--exclude-standard', '--others') + output.println('### (END)') + } + } +} +if (getProjectBooleanProperty('jarWriteGitInfo', true)) { + jar.dependsOn(writeGitInfo) +} + +// Set up spotless tasks.named("build") { finalizedBy("spotlessApply") } tasks.named("deploy") { finalizedBy("spotlessApply") } spotlessCheck.mustRunAfter(compileJava); diff --git a/src/main/java/frc/team2412/robot/Robot.java b/src/main/java/frc/team2412/robot/Robot.java index 053e6b3a..c0618fb9 100644 --- a/src/main/java/frc/team2412/robot/Robot.java +++ b/src/main/java/frc/team2412/robot/Robot.java @@ -16,6 +16,9 @@ import frc.team2412.robot.sim.PhysicsSim; import frc.team2412.robot.util.MACAddress; import frc.team2412.robot.util.auto.AutonomousChooser; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; import java.util.Optional; @@ -103,6 +106,17 @@ public void robotInit() { DriverStation.silenceJoystickConnectionWarning(true); PathPlannerServer.startServer(5811); + + logRobotInfo(); + } + + private void logRobotInfo() { + try { + File gitInfoFile = new File(Filesystem.getDeployDirectory(), "git-info.txt"); + System.out.println("Git info:\n" + Files.readString(gitInfoFile.toPath())); + } catch (IOException e) { + DriverStation.reportWarning("Could not open git info file", true); + } } public SwerveAutoBuilder getAutoBuilder(HashMap eventMap) {