Skip to content

Commit 44e0ef1

Browse files
committed
🚀 UTF8NoBOM Support
1 parent 5c77901 commit 44e0ef1

File tree

2 files changed

+69
-37
lines changed

2 files changed

+69
-37
lines changed

‎.github/workflows/keygen.yml‎

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ jobs:
3333
- uses: actions/checkout@v4.2.2
3434

3535
- name: Generating License (ASCII)
36-
# Do Not Use pwsh
36+
# Use PowerShell 5
3737
shell: powershell
3838
run: |
3939
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
4040
$PSVersionTable.PSVersion
41-
bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
41+
bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key
4242
4343
- name: Uploading License
44-
uses: actions/upload-artifact@v4.4.3
44+
uses: actions/upload-artifact@v4.6.2
4545
with:
46-
name: rarreg_file_${{env.KEY_ENCODING}}
46+
name: rarreg_file_${{ env.KEY_ENCODING }}
4747
path: rarreg.key
4848
if-no-files-found: error
4949
retention-days: 90
@@ -67,12 +67,12 @@ jobs:
6767
run: |
6868
[System.Text.Encoding]::Default
6969
$OutputEncoding
70-
bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
70+
bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key
7171
7272
- name: Uploading License
73-
uses: actions/upload-artifact@v4.4.3
73+
uses: actions/upload-artifact@v4.6.2
7474
with:
75-
name: rarreg_file_${{env.KEY_ENCODING}}
75+
name: rarreg_file_${{ env.KEY_ENCODING }}
7676
path: rarreg.key
7777
if-no-files-found: error
7878
retention-days: 90
@@ -91,17 +91,33 @@ jobs:
9191
- uses: actions/checkout@v4.2.2
9292

9393
- name: Generating License (UTF-8)
94-
# Do Not Use pwsh
95-
shell: powershell
94+
# Use PowerShell 7
95+
shell: pwsh
9696
run: |
9797
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
9898
$PSVersionTable.PSVersion
99-
bin/x64-Release/winrar-keygen.exe "utf8:${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
100-
99+
$user = "utf8:${{ env.KEY_USERNAME }}"
100+
$license = "${{ env.KEY_LICENSE_NAME }}"
101+
102+
$allAscii = $true
103+
foreach ($c in $license.ToCharArray()) {
104+
if ([int][char]$c -gt 127) {
105+
$allAscii = $false
106+
break
107+
}
108+
}
109+
110+
if (-not $allAscii) {
111+
$license = "utf8:" + $license
112+
}
113+
114+
Write-Host "License string: $license"
115+
bin/x64-Release/winrar-keygen.exe "$user" "$license" | Out-File -Encoding utf8NoBOM rarreg.key
116+
101117
- name: Uploading License
102-
uses: actions/upload-artifact@v4.4.3
118+
uses: actions/upload-artifact@v4.6.2
103119
with:
104-
name: rarreg_file_${{env.KEY_ENCODING}}
120+
name: rarreg_file_${{ env.KEY_ENCODING }}
105121
path: rarreg.key
106122
if-no-files-found: error
107123
retention-days: 90

‎.github/workflows/keygen_secrets.yml‎

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,27 @@ jobs:
1414
runs-on: windows-2022
1515
env:
1616
KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }}
17-
KEY_USERNAME: ${{secrets.TEXT1}}
18-
KEY_LICENSE_NAME: ${{secrets.TEXT2}}
19-
ZIP_PWD: ${{secrets.PWD}}
17+
KEY_USERNAME: ${{ secrets.TEXT1 }}
18+
KEY_LICENSE_NAME: ${{ secrets.TEXT2 }}
19+
ZIP_PWD: ${{ secrets.PWD }}
2020
if: github.event.inputs.KEY_ENCODING == 'ascii'
2121

2222
steps:
2323
- uses: actions/checkout@v4.2.2
2424

2525
- name: Generating License (ASCII)
26-
# Do Not Use pwsh
26+
# Use PowerShell 5
2727
shell: powershell
2828
run: |
2929
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
3030
$PSVersionTable.PSVersion
31-
bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
32-
7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}"
31+
bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key
32+
7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}"
3333
3434
- name: Uploading License
35-
uses: actions/upload-artifact@v4.4.3
35+
uses: actions/upload-artifact@v4.6.2
3636
with:
37-
name: rarreg_file_${{env.KEY_ENCODING}}
37+
name: rarreg_file_${{ env.KEY_ENCODING }}
3838
path: rarreg.7z
3939
if-no-files-found: error
4040
retention-days: 1
@@ -45,9 +45,9 @@ jobs:
4545
runs-on: windows-2022
4646
env:
4747
KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }}
48-
KEY_USERNAME: ${{secrets.TEXT1}}
49-
KEY_LICENSE_NAME: ${{secrets.TEXT2}}
50-
ZIP_PWD: ${{secrets.PWD}}
48+
KEY_USERNAME: ${{ secrets.TEXT1 }}
49+
KEY_LICENSE_NAME: ${{ secrets.TEXT2 }}
50+
ZIP_PWD: ${{ secrets.PWD }}
5151
if: github.event.inputs.KEY_ENCODING == 'ansi'
5252

5353
steps:
@@ -59,13 +59,13 @@ jobs:
5959
run: |
6060
[System.Text.Encoding]::Default
6161
$OutputEncoding
62-
bin/x64-Release/winrar-keygen.exe "${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
63-
7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}"
62+
bin/x64-Release/winrar-keygen.exe "${{ env.KEY_USERNAME }}" "${{ env.KEY_LICENSE_NAME }}" | Out-File -Encoding ${{ env.KEY_ENCODING }} rarreg.key
63+
7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}"
6464
6565
- name: Uploading License
66-
uses: actions/upload-artifact@v4.4.3
66+
uses: actions/upload-artifact@v4.6.2
6767
with:
68-
name: rarreg_file_${{env.KEY_ENCODING}}
68+
name: rarreg_file_${{ env.KEY_ENCODING }}
6969
path: rarreg.7z
7070
if-no-files-found: error
7171
retention-days: 1
@@ -76,27 +76,43 @@ jobs:
7676
runs-on: windows-2022
7777
env:
7878
KEY_ENCODING: ${{ github.event.inputs.KEY_ENCODING }}
79-
KEY_USERNAME: ${{secrets.TEXT1}}
80-
KEY_LICENSE_NAME: ${{secrets.TEXT2}}
81-
ZIP_PWD: ${{secrets.PWD}}
79+
KEY_USERNAME: ${{ secrets.TEXT1 }}
80+
KEY_LICENSE_NAME: ${{ secrets.TEXT2 }}
81+
ZIP_PWD: ${{ secrets.PWD }}
8282
if: github.event.inputs.KEY_ENCODING == 'utf8'
8383

8484
steps:
8585
- uses: actions/checkout@v4.2.2
8686

8787
- name: Generating License (UTF-8)
88-
# Do Not Use pwsh
89-
shell: powershell
88+
# Use PowerShell 7
89+
shell: pwsh
9090
run: |
9191
$OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
9292
$PSVersionTable.PSVersion
93-
bin/x64-Release/winrar-keygen.exe "utf8:${{env.KEY_USERNAME}}" "${{env.KEY_LICENSE_NAME}}" | Out-File -Encoding ${{env.KEY_ENCODING}} rarreg.key
94-
7z a rarreg.7z rarreg.key -p"${{env.ZIP_PWD}}"
93+
$user = "utf8:${{ env.KEY_USERNAME }}"
94+
$license = "${{ env.KEY_LICENSE_NAME }}"
95+
96+
$allAscii = $true
97+
foreach ($c in $license.ToCharArray()) {
98+
if ([int][char]$c -gt 127) {
99+
$allAscii = $false
100+
break
101+
}
102+
}
103+
104+
if (-not $allAscii) {
105+
$license = "utf8:" + $license
106+
}
107+
108+
Write-Host "Final license: $license"
109+
bin/x64-Release/winrar-keygen.exe "$user" "$license" | Out-File -Encoding utf8NoBOM rarreg.key
110+
7z a rarreg.7z rarreg.key -p"${{ env.ZIP_PWD }}"
95111
96112
- name: Uploading License
97-
uses: actions/upload-artifact@v4.4.3
113+
uses: actions/upload-artifact@v4.6.2
98114
with:
99-
name: rarreg_file_${{env.KEY_ENCODING}}
115+
name: rarreg_file_${{ env.KEY_ENCODING }}
100116
path: rarreg.7z
101117
if-no-files-found: error
102118
retention-days: 1

0 commit comments

Comments
 (0)