Skip to content

Commit 9ec75f2

Browse files
committed
Add Powershell script for 'scaladoc'
1 parent eabd4f9 commit 9ec75f2

File tree

1 file changed

+86
-97
lines changed

1 file changed

+86
-97
lines changed

dist/bin/scaladoc.ps1

Lines changed: 86 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,143 +1,132 @@
1-
# Environment setup
2-
$global:_EXITCODE = 0
3-
4-
$scriptPath = $PSScriptRoot
5-
$global:_PROG_HOME = $scriptPath.TrimEnd('\')
6-
7-
. "$_PROG_HOME\bin\common.bat"
8-
if ($LASTEXITCODE -ne 0) { goto end }
1+
###################################################################################################
2+
### POWERSHELL SCALADOC SCRIPT ###
3+
### ###
4+
### Author: Hamza REMMAL <hamza.remmal@epfl.ch> ###
5+
### Since : Scala 3.5.0 ###
6+
###################################################################################################
97

10-
$global:_DEFAULT_JAVA_OPTS = "-Xmx768m -Xms768m"
8+
# Environment setup
9+
$_PROG_HOME = $PSScriptRoot.TrimEnd('\bin\')
1110

12-
args $args
11+
. "$_PROG_HOME/bin/common.ps1"
1312

14-
# Main
15-
classpathArgs
13+
$_DEFAULT_JAVA_OPTS = "-Xmx768m -Xms768m"
1614

17-
if ($env:JAVA_OPTS) {
18-
$global:_JAVA_OPTS = $env:JAVA_OPTS
19-
} else {
20-
$global:_JAVA_OPTS = $global:_DEFAULT_JAVA_OPTS
21-
}
15+
###################################################################################################
16+
############################################ FUNCTIONS ############################################
17+
###################################################################################################
2218

23-
$global:_JAVACMD = $env:_JAVACMD -replace '%', '%%'
19+
function Scaladoc-ArgumentParsing {
20+
param ( [string[]] $params )
2421

25-
& $_JAVACMD $global:_JAVA_OPTS $env:_JAVA_DEBUG $env:_JAVA_ARGS `
26-
-classpath "$env:_CLASS_PATH" `
27-
-Dscala.usejavacp=true `
28-
dotty.tools.scaladoc.Main $env:_SCALA_ARGS $env:_RESIDUAL_ARGS
22+
$_JAVA_DEBUG = ""
23+
$_VERBOSE = $false
24+
$_QUIET = $false
25+
$_COLORS = $false
26+
$_SCALA_ARGS = ""
27+
$_JAVA_ARGS = ""
28+
$_RESIDUAL_ARGS = ""
29+
$_IN_SCRIPTING_ARGS = $false
2930

30-
if ($LASTEXITCODE -ne 0) {
31-
Write-Error "Error: Scaladoc execution failed"
32-
$global:_EXITCODE = 1
33-
goto end
34-
}
35-
goto end
36-
37-
# Subroutines
38-
39-
function args {
40-
$global:_JAVA_DEBUG = ""
41-
$global:_HELP = $false
42-
$global:_VERBOSE = $false
43-
$global:_QUIET = $false
44-
$global:_COLORS = $false
45-
$global:_SCALA_ARGS = ""
46-
$global:_JAVA_ARGS = ""
47-
$global:_RESIDUAL_ARGS = ""
48-
$global:_IN_SCRIPTING_ARGS = $false
49-
50-
while ($args.Count -gt 0) {
51-
$arg = $args[0]
31+
while ($params.Count -gt 0) {
32+
$arg = $params[0]
5233
switch ($arg) {
5334
"--" {
54-
$global:_IN_SCRIPTING_ARGS = $true
35+
$_IN_SCRIPTING_ARGS = $true
5536
}
5637
"-h" {
57-
$global:_HELP = $true
58-
addScala "-help"
38+
$_SCALA_ARGS += " -help"
5939
}
6040
"-help" {
61-
$global:_HELP = $true
62-
addScala "-help"
41+
$_SCALA_ARGS += " -help"
6342
}
6443
"-v" {
65-
$global:_VERBOSE = $true
66-
addScala "-verbose"
44+
$_VERBOSE = $true
45+
$_SCALA_ARGS += " -verbose"
6746
}
6847
"-verbose" {
69-
$global:_VERBOSE = $true
70-
addScala "-verbose"
48+
$_VERBOSE = $true
49+
$_SCALA_ARGS += " -verbose"
7150
}
7251
"-debug" {
73-
$global:_JAVA_DEBUG = $global:_DEBUG_STR
52+
$_JAVA_DEBUG = $_DEBUG_STR
7453
}
7554
"-q" {
76-
$global:_QUIET = $true
55+
$_QUIET = $true
7756
}
7857
"-quiet" {
79-
$global:_QUIET = $true
58+
$_QUIET = $true
8059
}
8160
"-colors" {
82-
$global:_COLORS = $true
61+
$_COLORS = $true
8362
}
8463
"-no-colors" {
85-
$global:_COLORS = $false
64+
$_COLORS = $false
8665
}
8766
default {
8867
if ($arg.StartsWith("-D")) {
89-
addJava "$arg"
68+
$_JAVA_ARGS += " $arg"
9069
} elseif ($arg.StartsWith("-J")) {
91-
addJava "${arg:2}"
70+
$_JAVA_ARGS += " ${arg:2}"
9271
} else {
93-
if ($global:_IN_SCRIPTING_ARGS) {
94-
addScripting "$arg"
72+
if ($_IN_SCRIPTING_ARGS) {
73+
# addScripting "$arg" TODO: What is this ?
9574
} else {
96-
addResidual "$arg"
75+
$_RESIDUAL_ARGS += " $arg"
9776
}
9877
}
9978
}
10079
}
101-
$args = $args[1..$args.Length]
80+
$params = $params[1..$params.Length]
10281
}
103-
}
10482

105-
function addScala {
106-
param ($arg)
107-
$global:_SCALA_ARGS += " $arg"
83+
return @{
84+
JAVA_DEBUG = $_JAVA_DEBUG
85+
SCALA_ARGS = $_SCALA_ARGS
86+
JAVA_ARGS = $_JAVA_ARGS
87+
RESIDUAL_ARGS = $_RESIDUAL_ARGS
88+
}
10889
}
10990

110-
function addJava {
111-
param ($arg)
112-
$global:_JAVA_ARGS += " $arg"
113-
}
91+
###################################################################################################
92+
############################################## SCRIPT #############################################
93+
###################################################################################################
11494

115-
function addResidual {
116-
param ($arg)
117-
$global:_RESIDUAL_ARGS += " $arg"
118-
}
11995

120-
function classpathArgs {
121-
$global:_ETC_DIR = "$global:_PROG_HOME\etc"
122-
loadClasspathFromFile
123-
}
96+
$scaladocParameters = Scaladoc-ArgumentParsing $args
12497

125-
function loadClasspathFromFile {
126-
$global:_CLASS_PATH = ""
127-
$classpathFile = "$global:_ETC_DIR\scaladoc.classpath"
128-
if (Test-Path $classpathFile) {
129-
$lines = Get-Content $classpathFile
130-
foreach ($line in $lines) {
131-
$lib = "$global:_PROG_HOME\maven2\$line".Replace('/', '\')
132-
if (!$global:_CLASS_PATH) {
133-
$global:_CLASS_PATH = $lib
134-
} else {
135-
$global:_CLASS_PATH += "$env:_PSEP$lib"
136-
}
137-
}
138-
}
98+
# Main
99+
$_CLASS_PATH = Scala-LoadClasspathFromFile "$_ETC_DIR/scaladoc.classpath"
100+
101+
if ($JAVA_OPTS) {
102+
$_JAVA_OPTS = $JAVA_OPTS
103+
} else {
104+
$_JAVA_OPTS = $_DEFAULT_JAVA_OPTS
139105
}
140106

141-
# Cleanups
142-
end
143-
exit $global:_EXITCODE
107+
108+
$_JAVA_DEBUG = $scaladocParameters.JAVA_DEBUG
109+
$_JAVA_ARGS = $scaladocParameters.JAVA_ARGS
110+
$_SCALA_ARGS = $scaladocParameters.SCALA_ARGS
111+
$_RESIDUAL_ARGS = $scaladocParameters.RESIDUAL_ARGS
112+
113+
# Build the java arguments
114+
$command = @()
115+
if (-not [string]::IsNullOrEmpty($_JAVA_OPTS)) { $command += $_JAVA_OPTS }
116+
if (-not [string]::IsNullOrEmpty($_JAVA_DEBUG)) { $command += $_JAVA_DEBUG }
117+
if (-not [string]::IsNullOrEmpty($_JAVA_ARGS)) { $command += $_JAVA_ARGS }
118+
$command += "-classpath"
119+
$command += $_CLASS_PATH
120+
$command += "-Dscala.usejavacp=true"
121+
$command += "-Dscala.home=$_PROG_HOME"
122+
$command += "dotty.tools.scaladoc.Main"
123+
if (-not [string]::IsNullOrEmpty($_SCALA_ARGS)) { $command += $_SCALA_ARGS }
124+
if (-not [string]::IsNullOrEmpty($_RESIDUAL_ARGS)) { $command += $_RESIDUAL_ARGS }
125+
126+
$commandString = $command -join ' '
127+
128+
Start-Process -FilePath $_JAVACMD -ArgumentList $commandString -NoNewWindow -Wait
129+
Write-Output $LASTEXITCODE
130+
if ($LASTEXITCODE -ne 0) { exit 1 }
131+
132+
exit 0

0 commit comments

Comments
 (0)