|
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 | +################################################################################################### |
9 | 7 |
|
10 |
| -$global:_DEFAULT_JAVA_OPTS = "-Xmx768m -Xms768m" |
| 8 | +# Environment setup |
| 9 | +$_PROG_HOME = $PSScriptRoot.TrimEnd('\bin\') |
11 | 10 |
|
12 |
| -args $args |
| 11 | +. "$_PROG_HOME/bin/common.ps1" |
13 | 12 |
|
14 |
| -# Main |
15 |
| -classpathArgs |
| 13 | +$_DEFAULT_JAVA_OPTS = "-Xmx768m -Xms768m" |
16 | 14 |
|
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 | +################################################################################################### |
22 | 18 |
|
23 |
| -$global:_JAVACMD = $env:_JAVACMD -replace '%', '%%' |
| 19 | +function Scaladoc-ArgumentParsing { |
| 20 | + param ( [string[]] $params ) |
24 | 21 |
|
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 |
29 | 30 |
|
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] |
52 | 33 | switch ($arg) {
|
53 | 34 | "--" {
|
54 |
| - $global:_IN_SCRIPTING_ARGS = $true |
| 35 | + $_IN_SCRIPTING_ARGS = $true |
55 | 36 | }
|
56 | 37 | "-h" {
|
57 |
| - $global:_HELP = $true |
58 |
| - addScala "-help" |
| 38 | + $_SCALA_ARGS += " -help" |
59 | 39 | }
|
60 | 40 | "-help" {
|
61 |
| - $global:_HELP = $true |
62 |
| - addScala "-help" |
| 41 | + $_SCALA_ARGS += " -help" |
63 | 42 | }
|
64 | 43 | "-v" {
|
65 |
| - $global:_VERBOSE = $true |
66 |
| - addScala "-verbose" |
| 44 | + $_VERBOSE = $true |
| 45 | + $_SCALA_ARGS += " -verbose" |
67 | 46 | }
|
68 | 47 | "-verbose" {
|
69 |
| - $global:_VERBOSE = $true |
70 |
| - addScala "-verbose" |
| 48 | + $_VERBOSE = $true |
| 49 | + $_SCALA_ARGS += " -verbose" |
71 | 50 | }
|
72 | 51 | "-debug" {
|
73 |
| - $global:_JAVA_DEBUG = $global:_DEBUG_STR |
| 52 | + $_JAVA_DEBUG = $_DEBUG_STR |
74 | 53 | }
|
75 | 54 | "-q" {
|
76 |
| - $global:_QUIET = $true |
| 55 | + $_QUIET = $true |
77 | 56 | }
|
78 | 57 | "-quiet" {
|
79 |
| - $global:_QUIET = $true |
| 58 | + $_QUIET = $true |
80 | 59 | }
|
81 | 60 | "-colors" {
|
82 |
| - $global:_COLORS = $true |
| 61 | + $_COLORS = $true |
83 | 62 | }
|
84 | 63 | "-no-colors" {
|
85 |
| - $global:_COLORS = $false |
| 64 | + $_COLORS = $false |
86 | 65 | }
|
87 | 66 | default {
|
88 | 67 | if ($arg.StartsWith("-D")) {
|
89 |
| - addJava "$arg" |
| 68 | + $_JAVA_ARGS += " $arg" |
90 | 69 | } elseif ($arg.StartsWith("-J")) {
|
91 |
| - addJava "${arg:2}" |
| 70 | + $_JAVA_ARGS += " ${arg:2}" |
92 | 71 | } else {
|
93 |
| - if ($global:_IN_SCRIPTING_ARGS) { |
94 |
| - addScripting "$arg" |
| 72 | + if ($_IN_SCRIPTING_ARGS) { |
| 73 | + # addScripting "$arg" TODO: What is this ? |
95 | 74 | } else {
|
96 |
| - addResidual "$arg" |
| 75 | + $_RESIDUAL_ARGS += " $arg" |
97 | 76 | }
|
98 | 77 | }
|
99 | 78 | }
|
100 | 79 | }
|
101 |
| - $args = $args[1..$args.Length] |
| 80 | + $params = $params[1..$params.Length] |
102 | 81 | }
|
103 |
| -} |
104 | 82 |
|
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 | + } |
108 | 89 | }
|
109 | 90 |
|
110 |
| -function addJava { |
111 |
| - param ($arg) |
112 |
| - $global:_JAVA_ARGS += " $arg" |
113 |
| -} |
| 91 | +################################################################################################### |
| 92 | +############################################## SCRIPT ############################################# |
| 93 | +################################################################################################### |
114 | 94 |
|
115 |
| -function addResidual { |
116 |
| - param ($arg) |
117 |
| - $global:_RESIDUAL_ARGS += " $arg" |
118 |
| -} |
119 | 95 |
|
120 |
| -function classpathArgs { |
121 |
| - $global:_ETC_DIR = "$global:_PROG_HOME\etc" |
122 |
| - loadClasspathFromFile |
123 |
| -} |
| 96 | +$scaladocParameters = Scaladoc-ArgumentParsing $args |
124 | 97 |
|
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 |
139 | 105 | }
|
140 | 106 |
|
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