1919 package controllers
2020
2121 import java .net .InetAddress
22+
23+ import javax .inject .Inject
24+ import play .api .mvc .{Action , AnyContent , BaseController , ControllerComponents }
2225 import play .core .PlayVersion
26+ import play .api .libs .json .Json
27+
28+ class SystemInfoController @ Inject ()(val controllerComponents : ControllerComponents ) extends BaseController {
2329
24- object JavaVersion {
25- def apply ( javaVersionPrefix : Option [ String ]) : String = {
26- val version = sys.props.get( " java.version " ) getOrElse {sys.error( " failed to get system property java.version " ) }
30+ def getInfo : Action [ AnyContent ] = Action {
31+ Ok ( Json .obj( " hostName " -> getHostName(), " javaVersion " -> getJvmVersion(), " platformName " -> getPlatformName(), " scalaVersion " -> getScalaVersion()))
32+ }
2733
28- javaVersionPrefix match {
29- case Some (prefix) =>
30- if (! version.startsWith(prefix)) {
31- sys.error(s " javac version ${version} may not be used to publish, it has to start with ${prefix} due to javaVersionPrefix setting " )
32- }
33- case None =>
34+ private def getJvmVersion (): String = {
35+ sys.props.get(" java.version" ) getOrElse {
36+ sys.error(" failed to get system property java.version" )
3437 }
35- version
3638 }
37- }
3839
39- object HostName {
40- def apply (host : Option [String ]): String = {
41- val hostname = InetAddress .getLocalHost().getHostName()
42- hostname
43- }
44- }
45-
46- object PlatformName {
47- def apply (platform : Option [String ]): String = {
48- val os = " os.name" ;
49- val version = " os.version" ;
50- val osVersion = System .getProperty(os) + " " + System .getProperty(version)
51- osVersion
52- }
53- }
5440
55- object ScalaVersion {
56- def apply (browser : Option [String ]): String = {
57- val scalaVersion = PlayVersion .current
58- scalaVersion
59- }
41+
42+ private def getHostName (): String = {
43+ InetAddress .getLocalHost().getHostName()
44+ }
45+
46+
47+ private def getPlatformName (): String = {
48+ val os = " os.name" ;
49+ val version = " os.version" ;
50+ val osVersion : String = System .getProperty(os) + " " + System .getProperty(version)
51+ osVersion
52+ }
53+
54+
55+ private def getScalaVersion (): String = {
56+ PlayVersion .current
57+ }
58+
6059 }
0 commit comments