Files
cypress/scripts/utils.js
Gleb Bahmutov a9dcfdff31 Version in commit subject 563 (#564)
* start unit testing npm version extract

* put short NPM version into trigger commit subject, close #563

* pass appVeyor token to bumpercar
2017-10-05 14:13:11 +00:00

60 lines
1.4 KiB
JavaScript

const minimist = require('minimist')
const la = require('lazy-ass')
const is = require('check-more-types')
const path = require('path')
const fs = require('fs')
/* eslint-disable no-console */
function getNameAndBinary (args = process.argv) {
const options = minimist(args)
la(is.unemptyString(options.npm),
'missing --npm option', options)
la(is.unemptyString(options.binary),
'missing --binary option', options)
let npm = options.npm
if (fs.existsSync(options.npm)) {
console.log('loading NPM url from', options.npm)
npm = require(path.resolve(options.npm)).url
la(is.url(npm), 'not an url', npm)
}
let binary = options.binary
if (fs.existsSync(options.binary)) {
console.log('loading binary url from', options.binary)
binary = require(path.resolve(options.binary)).url
la(is.url(binary), 'not an url', binary)
}
return {
npm,
binary,
}
}
function getJustVersion (npmNameOrUrl) {
la(is.unemptyString(npmNameOrUrl), 'missing NPM string', npmNameOrUrl)
if (npmNameOrUrl.startsWith('cypress')) {
return npmNameOrUrl
}
if (is.url(npmNameOrUrl)) {
// try finding semver in the url
// https://something/0.20.3/something...
const re = /\/(\d+\.\d+\.\d+(-\w+)?)\//
const matches = re.exec(npmNameOrUrl)
if (matches) {
return matches[1]
}
}
return npmNameOrUrl
}
module.exports = {
getNameAndBinary,
getJustVersion,
}