@@ -13,46 +13,82 @@ component aliases="-v,--version" extends="base" {
1313 * @help Show version information
1414 */
1515 public void function run () {
16- // Get server information
17- local .serverInfo = getServerInfo ();
18-
19- print .boldGreenLine (" Wheels CLI Module " & getWheelsCliVersion ());
20- print .line (" " );
21- print .greenLine (" Wheels Version: " & $getWheelsVersion ());
22- print .greenLine (" CFML Engine: " & local .serverInfo .name & " " & local .serverInfo .version );
23- print .greenLine (" CommandBox Version: " & shell .getVersion ());
16+ try {
17+ requireWheelsApp (getCWD ());
18+ // Get server information
19+ local .serverInfo = getServerInfo ();
20+
21+ print .boldGreenLine (" Wheels CLI Module " & getWheelsCliVersion ());
22+ print .line (" " );
23+ print .greenLine (" Wheels Version: " & $getWheelsVersion ());
24+ print .greenLine (" CFML Engine: " & local .serverInfo .name & " " & local .serverInfo .version );
25+ print .greenLine (" CommandBox Version: " & shell .getVersion ());
26+ } catch (any e ) {
27+ detailOutput .error (" #e .message #" );
28+ setExitCode (1 );
29+ }
2430 }
2531
2632 private struct function getServerInfo () {
2733 local .result = {
2834 name = " Unknown" ,
2935 version = " Unknown"
3036 };
31-
37+
3238 try {
33- // Try to get server info
34- local .serverDetails = serverService .resolveServerDetails (serverProps = {webroot = getCWD ()});
35- if (StructKeyExists (local .serverDetails , " serverInfo" )) {
36- local .result .name = local .serverDetails .serverInfo .name ?: " Unknown" ;
37- local .result .version = local .serverDetails .serverInfo .version ?: " Unknown" ;
39+ local .serverDetails = serverService .resolveServerDetails ({});
40+
41+ // Check if SERVERINFO exists (it contains engineName and engineVersion)
42+ if (StructKeyExists (local .serverDetails , " SERVERINFO" )) {
43+ local .serverInfo = local .serverDetails .SERVERINFO ;
44+
45+ if (StructKeyExists (local .serverInfo , " engineName" ) && StructKeyExists (local .serverInfo , " engineVersion" )) {
46+ // Get engine name
47+ if (local .serverInfo .engineName == " lucee" ) {
48+ local .result .name = " Lucee" ;
49+ } else if (local .serverInfo .engineName == " adobe" ) {
50+ local .result .name = " Adobe ColdFusion" ;
51+ } else if (local .serverInfo .engineName == " boxlang" ) {
52+ local .result .name = " BoxLang" ;
53+ } else {
54+ local .result .name = local .serverInfo .engineName ;
55+ }
56+
57+ // Get version
58+ if (Len (local .serverInfo .engineVersion ) && local .serverInfo .engineVersion ! = " Unknown" ) {
59+ local .result .version = local .serverInfo .engineVersion ;
60+ }
61+
62+ return local .result ;
63+ }
3864 }
3965 } catch (any e ) {
40- // Fall back to basic detection
66+ // Continue to direct server detection
67+ }
68+
69+ // Fallback to direct server scope detection
70+ try {
4171 if (StructKeyExists (server , " lucee" )) {
4272 local .result .name = " Lucee" ;
43- local .result .version = server .lucee .version ;
73+ if (StructKeyExists (server .lucee , " version" )) {
74+ local .result .version = server .lucee .version ;
75+ }
4476 } else if (StructKeyExists (server , " coldfusion" )) {
45- local .result .name = server .coldfusion .productname ;
46- local .result .version = server .coldfusion .productversion ;
77+ local .result .name = server .coldfusion .productname ?: " Adobe ColdFusion" ;
78+ if (StructKeyExists (server .coldfusion , " productversion" )) {
79+ local .result .version = server .coldfusion .productversion ;
80+ }
4781 }
82+ } catch (any e ) {
83+ // Use defaults
4884 }
49-
85+
5086 return local .result ;
5187 }
5288
5389 private string function getWheelsCliVersion () {
5490 // Read from CLI module's box.json
55- local .boxJsonPath = getDirectoryFromPath ( getCurrentTemplatePath ()) & " ../../../ box.json" ;
91+ local .boxJsonPath = expandPath ( " /wheels-cli/ box.json" ) ;
5692 if (FileExists (local .boxJsonPath )) {
5793 try {
5894 local .boxJson = DeserializeJSON (FileRead (local .boxJsonPath ));
0 commit comments