mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 14:34:21 +02:00
Fix usages of string.split(sep, limit)
* Since the limit just removes further matches in JavaScript.
This commit is contained in:
@@ -11,6 +11,14 @@ export const windows = (os.platform() === 'win32')
|
||||
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
|
||||
export const drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined)
|
||||
|
||||
export function partition(string, separator) {
|
||||
const i = string.indexOf(separator)
|
||||
if (i === -1) {
|
||||
throw new Error(`No separator ${separator} in string ${string}`)
|
||||
}
|
||||
return [string.slice(0, i), string.slice(i + separator.length, string.length)]
|
||||
}
|
||||
|
||||
export async function measure(name, block) {
|
||||
return await core.group(name, async () => {
|
||||
const start = performance.now()
|
||||
@@ -95,7 +103,7 @@ export function getToolCacheRubyPrefix(platform, version) {
|
||||
export function win2nix(path) {
|
||||
if (/^[A-Z]:/i.test(path)) {
|
||||
// path starts with drive
|
||||
path = `/${path[0].toLowerCase()}${path.split(':', 2)[1]}`
|
||||
path = `/${path[0].toLowerCase()}${partition(path, ':')[1]}`
|
||||
}
|
||||
return path.replace(/\\/g, '/').replace(/ /g, '\\ ')
|
||||
}
|
||||
|
||||
+13
-4
@@ -27796,7 +27796,7 @@ function addVCVARSEnv() {
|
||||
let newSet = cp.execSync(cmd).toString().trim().split(/\r?\n/)
|
||||
newSet = newSet.filter(line => line.match(/\S=\S/))
|
||||
newSet.forEach(s => {
|
||||
let [k,v] = s.split('=', 2)
|
||||
let [k,v] = common.partition(s, '=')
|
||||
newEnv.set(k,v)
|
||||
})
|
||||
|
||||
@@ -32094,6 +32094,7 @@ exports.default = _default;
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windows", function() { return windows; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "drive", function() { return drive; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "measure", function() { return measure; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHeadVersion", function() { return isHeadVersion; });
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isStableVersion", function() { return isStableVersion; });
|
||||
@@ -32116,6 +32117,14 @@ const windows = (os.platform() === 'win32')
|
||||
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
|
||||
const drive = (windows ? (process.env['GITHUB_WORKSPACE'] || 'C')[0] : undefined)
|
||||
|
||||
function partition(string, separator) {
|
||||
const i = string.indexOf(separator)
|
||||
if (i === -1) {
|
||||
throw new Error(`No separator ${separator} in string ${string}`)
|
||||
}
|
||||
return [string.slice(0, i), string.slice(i + separator.length, string.length)]
|
||||
}
|
||||
|
||||
async function measure(name, block) {
|
||||
return await core.group(name, async () => {
|
||||
const start = performance.now()
|
||||
@@ -32200,7 +32209,7 @@ function getToolCacheRubyPrefix(platform, version) {
|
||||
function win2nix(path) {
|
||||
if (/^[A-Z]:/i.test(path)) {
|
||||
// path starts with drive
|
||||
path = `/${path[0].toLowerCase()}${path.split(':', 2)[1]}`
|
||||
path = `/${path[0].toLowerCase()}${partition(path, ':')[1]}`
|
||||
}
|
||||
return path.replace(/\\/g, '/').replace(/ /g, '\\ ')
|
||||
}
|
||||
@@ -51269,7 +51278,7 @@ function parseRubyEngineAndVersion(rubyVersion) {
|
||||
} else if (rubyVersion === '.tool-versions') { // Read from .tool-versions
|
||||
const toolVersions = fs.readFileSync('.tool-versions', 'utf8').trim()
|
||||
const rubyLine = toolVersions.split(/\r?\n/).filter(e => e.match(/^ruby\s/))[0]
|
||||
rubyVersion = rubyLine.split(/\s+/, 2)[1]
|
||||
rubyVersion = rubyLine.match(/^ruby\s+(.+)$/)[1]
|
||||
console.log(`Using ${rubyVersion} as input from file .tool-versions`)
|
||||
}
|
||||
|
||||
@@ -51281,7 +51290,7 @@ function parseRubyEngineAndVersion(rubyVersion) {
|
||||
engine = rubyVersion
|
||||
version = '' // Let the logic in validateRubyEngineAndVersion() find the version
|
||||
} else { // engine-X.Y.Z
|
||||
[engine, version] = rubyVersion.split('-', 2)
|
||||
[engine, version] = common.partition(rubyVersion, '-')
|
||||
}
|
||||
|
||||
return [engine, version]
|
||||
|
||||
@@ -106,7 +106,7 @@ function parseRubyEngineAndVersion(rubyVersion) {
|
||||
} else if (rubyVersion === '.tool-versions') { // Read from .tool-versions
|
||||
const toolVersions = fs.readFileSync('.tool-versions', 'utf8').trim()
|
||||
const rubyLine = toolVersions.split(/\r?\n/).filter(e => e.match(/^ruby\s/))[0]
|
||||
rubyVersion = rubyLine.split(/\s+/, 2)[1]
|
||||
rubyVersion = rubyLine.match(/^ruby\s+(.+)$/)[1]
|
||||
console.log(`Using ${rubyVersion} as input from file .tool-versions`)
|
||||
}
|
||||
|
||||
@@ -118,7 +118,7 @@ function parseRubyEngineAndVersion(rubyVersion) {
|
||||
engine = rubyVersion
|
||||
version = '' // Let the logic in validateRubyEngineAndVersion() find the version
|
||||
} else { // engine-X.Y.Z
|
||||
[engine, version] = rubyVersion.split('-', 2)
|
||||
[engine, version] = common.partition(rubyVersion, '-')
|
||||
}
|
||||
|
||||
return [engine, version]
|
||||
|
||||
+1
-1
@@ -120,7 +120,7 @@ export function addVCVARSEnv() {
|
||||
let newSet = cp.execSync(cmd).toString().trim().split(/\r?\n/)
|
||||
newSet = newSet.filter(line => line.match(/\S=\S/))
|
||||
newSet.forEach(s => {
|
||||
let [k,v] = s.split('=', 2)
|
||||
let [k,v] = common.partition(s, '=')
|
||||
newEnv.set(k,v)
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user