Skip to content

Commit b89533c

Browse files
committed
win32_system_dir comparison script & GitHub action
1 parent 276e38c commit b89533c

File tree

2 files changed

+187
-0
lines changed

2 files changed

+187
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: win32
2+
3+
on: [push, pull_request]
4+
5+
permissions: # added using https://github.com/step-security/secure-workflows
6+
contents: read
7+
8+
jobs:
9+
ruby-versions:
10+
uses: ruby/actions/.github/workflows/ruby_versions.yml@master
11+
with:
12+
min_version: 2.3
13+
engine: cruby-jruby
14+
versions: '["truffleruby"]'
15+
16+
win32-system-dir:
17+
needs: ruby-versions
18+
runs-on: windows-latest
19+
strategy:
20+
matrix:
21+
ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
22+
exclude:
23+
- ruby: truffleruby
24+
- ruby: jruby-head
25+
- ruby: jruby
26+
steps:
27+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
28+
- uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
29+
with:
30+
ruby-version: ${{ matrix.ruby }}
31+
- name: Run "win32_system_dir" comparison
32+
run: .\win32_system_dir.bat
33+
shell: cmd

win32_system_dir.bat

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
@ECHO OFF
2+
3+
ECHO ---------------------------------------------------------------
4+
ruby -I lib -r rake -e "print ' platform: ' + (Rake::Win32.windows? ? 'Windows' : 'Unix')"
5+
ruby -e "puts ' / branch: ' + %%x{git symbolic-ref --quiet --short HEAD}.chomp"
6+
ECHO:
7+
8+
GOTO :main
9+
10+
:echoWindowsEnv
11+
ECHO [Windows] %%HOME%%=%HOME%
12+
ECHO [Windows] %%HOMEDRIVE%%=%HOMEDRIVE%
13+
ECHO [Windows] %%HOMEPATH%%=%HOMEPATH%
14+
ECHO [Windows] %%APPDATA%%=%APPDATA%
15+
ECHO [Windows] %%USERPROFILE%%=%USERPROFILE%
16+
ECHO:
17+
GOTO :eof
18+
19+
:putsRubyEnv
20+
ruby -e 'puts "[Ruby] ENV[\"HOME\"] = " + ENV.fetch("HOME", "nil")'
21+
ruby -e 'puts "[Ruby] ENV[\"HOMEDRIVE\"] = " + ENV.fetch("HOMEDRIVE", "nil")'
22+
ruby -e 'puts "[Ruby] ENV[\"HOMEPATH\"] = " + ENV.fetch("HOMEPATH", "nil")'
23+
ruby -e 'puts "[Ruby] ENV[\"APPDATA\"] = " + ENV.fetch("APPDATA", "nil")'
24+
ruby -e 'puts "[Ruby] ENV[\"USERPROFILE\"] = " + ENV.fetch("USERPROFILE", "nil")'
25+
ECHO:
26+
GOTO :eof
27+
28+
:returnRubyDirHome
29+
for /f "delims=" %%i in ('ruby -e "puts File.join(Dir.home, \"Rake\")"') do set RUBY_DIR=%%i
30+
GOTO :eof
31+
32+
:returnRakeWin32SystemDir
33+
for /f "delims=" %%i in ('ruby -I lib -r rake -e "puts Rake::Win32::win32_system_dir"') do set RAKE_DIR=%%i
34+
GOTO :eof
35+
36+
:compareValues
37+
CALL :returnRubyDirHome
38+
CALL :returnRakeWin32SystemDir
39+
ECHO [Ruby] File.join^(Dir.home, "Rake"^) =^> %RUBY_DIR%
40+
ECHO [Rake] Rake::Win32::win32_system_dir =^> %RAKE_DIR%
41+
if "%RUBY_DIR%"=="%RAKE_DIR%" (
42+
ECHO ✅ PASS: Values match
43+
) else (
44+
ECHO ❌ FAIL: Values do not match
45+
set /a FAILURE_COUNT+=1
46+
)
47+
GOTO :eof
48+
49+
:main
50+
51+
SET FAILURE_COUNT=0
52+
53+
ECHO ---------------------------------------------------------------
54+
ECHO 1/5 - %%HOME%% set in Windows env
55+
ECHO ---------------------------------------------------------------
56+
57+
SET HOME=C:\HP
58+
SET HOMEDRIVE=
59+
SET HOMEPATH=
60+
SET APPDATA=
61+
SET USERPROFILE=
62+
63+
CALL :echoWindowsEnv
64+
CALL :putsRubyEnv
65+
66+
CALL :compareValues
67+
68+
ECHO:
69+
70+
ECHO ---------------------------------------------------------------
71+
ECHO 2/5 - %%HOMEDRIVE%% and %%HOMEPATH%% set in Windows env
72+
ECHO ---------------------------------------------------------------
73+
74+
SET HOME=
75+
SET HOMEDRIVE=C:
76+
SET HOMEPATH=\HP
77+
SET APPDATA=
78+
SET USERPROFILE=
79+
80+
CALL :echoWindowsEnv
81+
CALL :putsRubyEnv
82+
83+
CALL :compareValues
84+
85+
ECHO:
86+
87+
ECHO ---------------------------------------------------------------
88+
ECHO 3/5 - %%APPDATA%% set in Windows env
89+
ECHO ---------------------------------------------------------------
90+
91+
SET HOME=
92+
SET HOMEDRIVE=
93+
SET HOMEPATH=
94+
SET APPDATA=C:\Documents and Settings\HP\Application Data
95+
SET USERPROFILE=
96+
97+
CALL :echoWindowsEnv
98+
CALL :putsRubyEnv
99+
100+
CALL :compareValues
101+
102+
ECHO:
103+
104+
ECHO ---------------------------------------------------------------
105+
ECHO 4/5 - %%USERPROFILE%% set in Windows env
106+
ECHO ---------------------------------------------------------------
107+
108+
SET HOME=
109+
SET HOMEDRIVE=
110+
SET HOMEPATH=
111+
SET APPDATA=
112+
SET USERPROFILE=C:\Documents and Settings\HP
113+
114+
CALL :echoWindowsEnv
115+
CALL :putsRubyEnv
116+
117+
CALL :compareValues
118+
119+
ECHO:
120+
121+
ECHO ---------------------------------------------------------------
122+
ECHO 5/5 - nothing set in Windows env
123+
ECHO ---------------------------------------------------------------
124+
ECHO Ruby *always* sets HOME [and USER for that matter]
125+
ECHO in *its* environment, even if these are not set in
126+
ECHO the Windows environment.
127+
ECHO:
128+
ECHO https://github.com/ruby/ruby/commit/c41cefd492
129+
ECHO ---------------------------------------------------------------
130+
131+
SET HOME=
132+
SET HOMEDRIVE=
133+
SET HOMEPATH=
134+
SET APPDATA=
135+
SET USERPROFILE=
136+
137+
CALL :echoWindowsEnv
138+
CALL :putsRubyEnv
139+
140+
CALL :compareValues
141+
142+
ECHO:
143+
144+
ECHO ----------------------------------
145+
ECHO:
146+
147+
if %FAILURE_COUNT% GTR 0 (
148+
ECHO ❌ OVERALL RESULT: %FAILURE_COUNT% test^(s^) failed
149+
exit /b 1
150+
) else (
151+
ECHO ✅ OVERALL RESULT: All tests passed
152+
exit /b 0
153+
)
154+

0 commit comments

Comments
 (0)