mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 07:06:07 +00:00
Handle .tool-versions' line break on Windows (#357)
* Test .tool-version on top of Windows * Parse .tool-version with Windows-style line endings
This commit is contained in:
committed by
GitHub
parent
6389fe58dc
commit
1fe9179886
@@ -90,6 +90,14 @@ jobs:
|
||||
node-version: '20'
|
||||
- run: npm install --production
|
||||
- run: npm test
|
||||
- name: .tool-versions test
|
||||
id: setup-beam
|
||||
uses: ./
|
||||
with:
|
||||
install-rebar: false
|
||||
install-hex: false
|
||||
version-file: test/.tool-versions
|
||||
version-type: strict
|
||||
|
||||
unit_tests_macos:
|
||||
name: Unit tests (macOS)
|
||||
|
||||
Vendored
+1
-1
@@ -26680,7 +26680,7 @@ function parseVersionFile(versionFilePath0) {
|
||||
// For the time being we parse .tool-versions
|
||||
// If we ever start parsing something else, this should
|
||||
// become default in a new option named e.g. version-file-type
|
||||
versions.split('\n').forEach((line) => {
|
||||
versions.split(/\r?\n/).forEach((line) => {
|
||||
const appVersion = line.match(/^([^ ]+)[ ]+(ref:v?)?([^ #]+)/)
|
||||
if (appVersion) {
|
||||
const app = appVersion[1]
|
||||
|
||||
+1
-1
@@ -805,7 +805,7 @@ function parseVersionFile(versionFilePath0) {
|
||||
// For the time being we parse .tool-versions
|
||||
// If we ever start parsing something else, this should
|
||||
// become default in a new option named e.g. version-file-type
|
||||
versions.split('\n').forEach((line) => {
|
||||
versions.split(/\r?\n/).forEach((line) => {
|
||||
const appVersion = line.match(/^([^ ]+)[ ]+(ref:v?)?([^ #]+)/)
|
||||
if (appVersion) {
|
||||
const app = appVersion[1]
|
||||
|
||||
@@ -938,15 +938,19 @@ describe('version file', () => {
|
||||
const gleamVersion = unsimulateInput('gleam-version')
|
||||
|
||||
it('is parsed correctly', async () => {
|
||||
const erlang = '27'
|
||||
const elixir = '1.17.0'
|
||||
const gleam = '0.23.0'
|
||||
const toolVersions = `# a comment
|
||||
erlang ref:v${erlang}# comment, no space, and ref:v
|
||||
const erlang = '27.3.4.1'
|
||||
const elixir = '1.18.4'
|
||||
const gleam = '1.9.1'
|
||||
let toolVersions = `# a comment
|
||||
erlang ref:v${erlang}
|
||||
elixir ref:${elixir} # comment, with space and ref:
|
||||
not-gleam 0.23 # not picked up
|
||||
gleam ${gleam} \n`
|
||||
const filename = 'test/.tool-versions'
|
||||
if (process.platform === 'win32') {
|
||||
// Force \r\n to test in Windows
|
||||
toolVersions = toolVersions.replace(/\n/g, '\r\n')
|
||||
}
|
||||
fs.writeFileSync(filename, toolVersions)
|
||||
process.env.GITHUB_WORKSPACE = ''
|
||||
const appVersions = setupBeam.parseVersionFile(filename)
|
||||
|
||||
Reference in New Issue
Block a user