Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ lazy val root = (project in file("."))
version,
scalaVersion,
libraryDependencies,
BuildInfoKey.action("buildTime") {
System.currentTimeMillis
},
),
buildInfoPackage := "eu.neverblink.jelly.cli",
assembly / assemblyMergeStrategy := {
Expand Down
13 changes: 13 additions & 0 deletions src/main/scala/eu/neverblink/jelly/cli/command/Version.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import caseapp.*
import eu.neverblink.jelly.cli.*
import eu.neverblink.jelly.cli.util.jena.JenaSystemOptions

import java.text.SimpleDateFormat
import java.util.Date
import scala.util.{Failure, Success}

@HelpMessage(
Expand All @@ -22,6 +24,7 @@ object Version extends JellyCommand[VersionOptions]:
)

override def doRun(options: VersionOptions, remainingArgs: RemainingArgs): Unit =
// Print version info
val jenaV = BuildInfo.libraryDependencies
.find(_.startsWith("org.apache.jena:jena-core:")).get.split(":")(2)
val jellyV = BuildInfo.libraryDependencies
Expand All @@ -35,6 +38,7 @@ object Version extends JellyCommand[VersionOptions]:
|JVM ${System.getProperty("java.vm.name")} ${System.getProperty("java.vm.version")}
|----------------------------------------------
|""".stripMargin.trim)
// Print feature support info
reflectionSupported match {
case Failure(ex) =>
printLine("[ ] JVM reflection: not supported. Parsing will be slower.")
Expand All @@ -44,3 +48,12 @@ object Version extends JellyCommand[VersionOptions]:
else printLine(" Run with --debug for details.")
case Success(_) => printLine("[X] JVM reflection: supported. Parsing optimizations enabled.")
}
// Print copyright info
val buildYear = new SimpleDateFormat("yyyy").format(Date(BuildInfo.buildTime))
printLine(f"""
|Copyright (C) $buildYear NeverBlink and contributors.
|Licensed under the Apache License, Version 2.0.
|For details, see https://www.apache.org/licenses/LICENSE-2.0
|This software comes with no warranties and is provided 'as-is'.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
|This software comes with no warranties and is provided 'as-is'.
|This software comes with no warranties and is provided 'as-is'

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no.

|Documentation and author list: https://github.com/Jelly-RDF/cli
""".stripMargin)
11 changes: 11 additions & 0 deletions src/test/scala/eu/neverblink/jelly/cli/command/VersionSpec.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,15 @@ class VersionSpec extends AnyWordSpec, Matchers:
val (out, err) = Version.runTestCommand(List(alias))
out should include("[X] JVM reflection: supported.")
}

"include the copyright year" in {
val (out, err) = Version.runTestCommand(List(alias))
val currentYear = java.time.Year.now.getValue.toString
out should include(s"Copyright (C) $currentYear NeverBlink and contributors")
}

"include a link to the license" in {
val (out, err) = Version.runTestCommand(List(alias))
out should include("https://www.apache.org/licenses/LICENSE-2.0")
}
}