mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-08-23 14:04:07 +07:00
Compare commits
10 Commits
Author | SHA1 | Date | |
---|---|---|---|
72ae4ccbe5 | |||
5b2015e8fe | |||
9c77701ae5 | |||
394503cb8a | |||
f1cc14e3d5 | |||
9d529a72e0 | |||
c63f07d82e | |||
e40aa32c04 | |||
a683e80307 | |||
7ce22e0264 |
@ -224,7 +224,7 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
|
|||||||
|
|
||||||
These tools can be set up globally using the `tools` input. It accepts a string in csv-format.
|
These tools can be set up globally using the `tools` input. It accepts a string in csv-format.
|
||||||
|
|
||||||
[`behat`], [`blackfire`], [`blackfire-player`], [`churn`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`pint`], [`prestissimo`], [`protoc`], [`psalm`], [`rector`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
|
[`behat`], [`blackfire`], [`blackfire-player`], [`castor`], [`churn`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`pint`], [`prestissimo`], [`protoc`], [`psalm`], [`rector`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
- name: Setup PHP with tools
|
- name: Setup PHP with tools
|
||||||
@ -1028,6 +1028,7 @@ These companies generously provide setup-php their products and services to aid
|
|||||||
[`behat`]: https://docs.behat.org/en/latest/
|
[`behat`]: https://docs.behat.org/en/latest/
|
||||||
[`blackfire`]: https://blackfire.io/docs/php/index
|
[`blackfire`]: https://blackfire.io/docs/php/index
|
||||||
[`blackfire-player`]: https://blackfire.io/docs/builds-cookbooks/player
|
[`blackfire-player`]: https://blackfire.io/docs/builds-cookbooks/player
|
||||||
|
[`castor`]: https://github.com/jolicode/castor
|
||||||
[`churn`]: https://github.com/bmitch/churn-php
|
[`churn`]: https://github.com/bmitch/churn-php
|
||||||
[`codeception`]: https://codeception.com/
|
[`codeception`]: https://codeception.com/
|
||||||
[`composer`]: https://getcomposer.org/
|
[`composer`]: https://getcomposer.org/
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import fs = require('fs');
|
||||||
import * as tools from '../src/tools';
|
import * as tools from '../src/tools';
|
||||||
|
|
||||||
interface IData {
|
interface IData {
|
||||||
@ -526,6 +527,32 @@ describe('Tools tests', () => {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
it.each`
|
||||||
|
version | os | uri
|
||||||
|
${'latest'} | ${'linux'} | ${'releases/latest/download/castor.linux-amd64.phar'}
|
||||||
|
${'0.5.1'} | ${'linux'} | ${'releases/download/v0.5.1/castor.linux-amd64.phar'}
|
||||||
|
${'latest'} | ${'darwin'} | ${'releases/latest/download/castor.darwin-amd64.phar'}
|
||||||
|
${'0.5.1'} | ${'darwin'} | ${'releases/download/v0.5.1/castor.darwin-amd64.phar'}
|
||||||
|
${'latest'} | ${'win32'} | ${'releases/latest/download/castor.windows-amd64.phar'}
|
||||||
|
${'0.5.1'} | ${'win32'} | ${'releases/download/v0.5.1/castor.windows-amd64.phar castor -V'}
|
||||||
|
${'latest'} | ${'openbsd'} | ${'Platform openbsd is not supported'}
|
||||||
|
`('checking addCastor: $version, $os', async ({version, os, uri}) => {
|
||||||
|
const data = getData({
|
||||||
|
tool: 'castor',
|
||||||
|
php_version: '8.1',
|
||||||
|
version_prefix: 'v',
|
||||||
|
version: version,
|
||||||
|
os: os
|
||||||
|
});
|
||||||
|
if (os === 'win32' && version === '0.5.1') {
|
||||||
|
fs.writeFileSync('castor.php', '');
|
||||||
|
expect(await tools.addCastor(data)).toContain(uri);
|
||||||
|
fs.unlinkSync('castor.php');
|
||||||
|
} else {
|
||||||
|
expect(await tools.addCastor(data)).toContain(uri);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
it.each`
|
it.each`
|
||||||
tools_csv | script
|
tools_csv | script
|
||||||
${'none'} | ${''}
|
${'none'} | ${''}
|
||||||
|
156
dist/index.js
vendored
156
dist/index.js
vendored
@ -682,7 +682,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.addTools = exports.functionRecord = exports.getData = exports.addWPCLI = exports.addPHPUnitTools = exports.addPhive = exports.addPhing = exports.addPECL = exports.addDevTools = exports.addDeployer = exports.addComposer = exports.addBlackfirePlayer = exports.addPackage = exports.addArchive = exports.getPharUrl = exports.getUrl = exports.filterList = exports.getRelease = exports.getVersion = exports.getLatestVersion = exports.getSemverVersion = void 0;
|
exports.addTools = exports.functionRecord = exports.getData = exports.addWPCLI = exports.addPHPUnitTools = exports.addPhive = exports.addPhing = exports.addPECL = exports.addDevTools = exports.addDeployer = exports.addComposer = exports.addCastor = exports.addBlackfirePlayer = exports.addPackage = exports.addArchive = exports.getPharUrl = exports.getUrl = exports.filterList = exports.getRelease = exports.getVersion = exports.getLatestVersion = exports.getSemverVersion = void 0;
|
||||||
const path_1 = __importDefault(__nccwpck_require__(1017));
|
const path_1 = __importDefault(__nccwpck_require__(1017));
|
||||||
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
const fs_1 = __importDefault(__nccwpck_require__(7147));
|
||||||
const fetch = __importStar(__nccwpck_require__(2387));
|
const fetch = __importStar(__nccwpck_require__(2387));
|
||||||
@ -837,6 +837,16 @@ async function addBlackfirePlayer(data) {
|
|||||||
return addArchive(data);
|
return addArchive(data);
|
||||||
}
|
}
|
||||||
exports.addBlackfirePlayer = addBlackfirePlayer;
|
exports.addBlackfirePlayer = addBlackfirePlayer;
|
||||||
|
async function addCastor(data) {
|
||||||
|
data['tool'] = 'castor.' + data['os'].replace('win32', 'windows') + '-amd64';
|
||||||
|
data['url'] = await getUrl(data);
|
||||||
|
data['tool'] = 'castor';
|
||||||
|
data['version_parameter'] = fs_1.default.existsSync('castor.php')
|
||||||
|
? data['version_parameter']
|
||||||
|
: '';
|
||||||
|
return await addArchive(data);
|
||||||
|
}
|
||||||
|
exports.addCastor = addCastor;
|
||||||
async function addComposer(data) {
|
async function addComposer(data) {
|
||||||
const channel = data['version'].replace('latest', 'stable');
|
const channel = data['version'].replace('latest', 'stable');
|
||||||
const github = data['github'];
|
const github = data['github'];
|
||||||
@ -1015,6 +1025,7 @@ async function getData(release, php_version, os) {
|
|||||||
}
|
}
|
||||||
exports.getData = getData;
|
exports.getData = getData;
|
||||||
exports.functionRecord = {
|
exports.functionRecord = {
|
||||||
|
castor: addCastor,
|
||||||
composer: addComposer,
|
composer: addComposer,
|
||||||
deployer: addDeployer,
|
deployer: addDeployer,
|
||||||
dev_tools: addDevTools,
|
dev_tools: addDevTools,
|
||||||
@ -4378,6 +4389,43 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
0;
|
0;
|
||||||
})(this, (function (exports) { 'use strict';
|
})(this, (function (exports) { 'use strict';
|
||||||
|
|
||||||
|
const semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;
|
||||||
|
const validateAndParse = (version) => {
|
||||||
|
if (typeof version !== 'string') {
|
||||||
|
throw new TypeError('Invalid argument expected string');
|
||||||
|
}
|
||||||
|
const match = version.match(semver);
|
||||||
|
if (!match) {
|
||||||
|
throw new Error(`Invalid argument not valid semver ('${version}' received)`);
|
||||||
|
}
|
||||||
|
match.shift();
|
||||||
|
return match;
|
||||||
|
};
|
||||||
|
const isWildcard = (s) => s === '*' || s === 'x' || s === 'X';
|
||||||
|
const tryParse = (v) => {
|
||||||
|
const n = parseInt(v, 10);
|
||||||
|
return isNaN(n) ? v : n;
|
||||||
|
};
|
||||||
|
const forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];
|
||||||
|
const compareStrings = (a, b) => {
|
||||||
|
if (isWildcard(a) || isWildcard(b))
|
||||||
|
return 0;
|
||||||
|
const [ap, bp] = forceType(tryParse(a), tryParse(b));
|
||||||
|
if (ap > bp)
|
||||||
|
return 1;
|
||||||
|
if (ap < bp)
|
||||||
|
return -1;
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
const compareSegments = (a, b) => {
|
||||||
|
for (let i = 0; i < Math.max(a.length, b.length); i++) {
|
||||||
|
const r = compareStrings(a[i] || '0', b[i] || '0');
|
||||||
|
if (r !== 0)
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.
|
* Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.
|
||||||
* This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.
|
* This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.
|
||||||
@ -4405,20 +4453,7 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
/**
|
|
||||||
* Validate [semver](https://semver.org/) version strings.
|
|
||||||
*
|
|
||||||
* @param version Version number to validate
|
|
||||||
* @returns `true` if the version number is a valid semver version number, `false` otherwise.
|
|
||||||
*
|
|
||||||
* @example
|
|
||||||
* ```
|
|
||||||
* validate('1.0.0-rc.1'); // return true
|
|
||||||
* validate('1.0-rc.1'); // return false
|
|
||||||
* validate('foo'); // return false
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
const validate = (version) => typeof version === 'string' && /^[v\d]/.test(version) && semver.test(version);
|
|
||||||
/**
|
/**
|
||||||
* Compare [semver](https://semver.org/) version strings using the specified operator.
|
* Compare [semver](https://semver.org/) version strings using the specified operator.
|
||||||
*
|
*
|
||||||
@ -4444,6 +4479,24 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
const res = compareVersions(v1, v2);
|
const res = compareVersions(v1, v2);
|
||||||
return operatorResMap[operator].includes(res);
|
return operatorResMap[operator].includes(res);
|
||||||
};
|
};
|
||||||
|
const operatorResMap = {
|
||||||
|
'>': [1],
|
||||||
|
'>=': [0, 1],
|
||||||
|
'=': [0],
|
||||||
|
'<=': [-1, 0],
|
||||||
|
'<': [-1],
|
||||||
|
'!=': [-1, 1],
|
||||||
|
};
|
||||||
|
const allowedOperators = Object.keys(operatorResMap);
|
||||||
|
const assertValidOperator = (op) => {
|
||||||
|
if (typeof op !== 'string') {
|
||||||
|
throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);
|
||||||
|
}
|
||||||
|
if (allowedOperators.indexOf(op) === -1) {
|
||||||
|
throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.
|
* Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.
|
||||||
*
|
*
|
||||||
@ -4458,10 +4511,16 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
const satisfies = (version, range) => {
|
const satisfies = (version, range) => {
|
||||||
|
// clean input
|
||||||
|
range = range.replace(/([><=]+)\s+/g, '$1');
|
||||||
// handle multiple comparators
|
// handle multiple comparators
|
||||||
if (range.includes('||')) {
|
if (range.includes('||')) {
|
||||||
return range.split('||').some((r) => satisfies(version, r));
|
return range.split('||').some((r) => satisfies(version, r));
|
||||||
}
|
}
|
||||||
|
else if (range.includes(' - ')) {
|
||||||
|
const [a, b] = range.split(' - ', 2);
|
||||||
|
return satisfies(version, `>=${a} <=${b}`);
|
||||||
|
}
|
||||||
else if (range.includes(' ')) {
|
else if (range.includes(' ')) {
|
||||||
return range
|
return range
|
||||||
.trim()
|
.trim()
|
||||||
@ -4501,58 +4560,21 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
const semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;
|
|
||||||
const validateAndParse = (version) => {
|
/**
|
||||||
if (typeof version !== 'string') {
|
* Validate [semver](https://semver.org/) version strings.
|
||||||
throw new TypeError('Invalid argument expected string');
|
*
|
||||||
}
|
* @param version Version number to validate
|
||||||
const match = version.match(semver);
|
* @returns `true` if the version number is a valid semver version number, `false` otherwise.
|
||||||
if (!match) {
|
*
|
||||||
throw new Error(`Invalid argument not valid semver ('${version}' received)`);
|
* @example
|
||||||
}
|
* ```
|
||||||
match.shift();
|
* validate('1.0.0-rc.1'); // return true
|
||||||
return match;
|
* validate('1.0-rc.1'); // return false
|
||||||
};
|
* validate('foo'); // return false
|
||||||
const isWildcard = (s) => s === '*' || s === 'x' || s === 'X';
|
* ```
|
||||||
const tryParse = (v) => {
|
*/
|
||||||
const n = parseInt(v, 10);
|
const validate = (version) => typeof version === 'string' && /^[v\d]/.test(version) && semver.test(version);
|
||||||
return isNaN(n) ? v : n;
|
|
||||||
};
|
|
||||||
const forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];
|
|
||||||
const compareStrings = (a, b) => {
|
|
||||||
if (isWildcard(a) || isWildcard(b))
|
|
||||||
return 0;
|
|
||||||
const [ap, bp] = forceType(tryParse(a), tryParse(b));
|
|
||||||
if (ap > bp)
|
|
||||||
return 1;
|
|
||||||
if (ap < bp)
|
|
||||||
return -1;
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
const compareSegments = (a, b) => {
|
|
||||||
for (let i = 0; i < Math.max(a.length, b.length); i++) {
|
|
||||||
const r = compareStrings(a[i] || '0', b[i] || '0');
|
|
||||||
if (r !== 0)
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
const operatorResMap = {
|
|
||||||
'>': [1],
|
|
||||||
'>=': [0, 1],
|
|
||||||
'=': [0],
|
|
||||||
'<=': [-1, 0],
|
|
||||||
'<': [-1],
|
|
||||||
};
|
|
||||||
const allowedOperators = Object.keys(operatorResMap);
|
|
||||||
const assertValidOperator = (op) => {
|
|
||||||
if (typeof op !== 'string') {
|
|
||||||
throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);
|
|
||||||
}
|
|
||||||
if (allowedOperators.indexOf(op) === -1) {
|
|
||||||
throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.compare = compare;
|
exports.compare = compare;
|
||||||
exports.compareVersions = compareVersions;
|
exports.compareVersions = compareVersions;
|
||||||
|
4388
package-lock.json
generated
4388
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
36
package.json
36
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "2.25.4",
|
"version": "2.25.5",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Setup PHP for use with GitHub Actions",
|
"description": "Setup PHP for use with GitHub Actions",
|
||||||
"main": "lib/install.js",
|
"main": "lib/install.js",
|
||||||
@ -37,26 +37,26 @@
|
|||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.0",
|
||||||
"@actions/exec": "^1.1.1",
|
"@actions/exec": "^1.1.1",
|
||||||
"@actions/io": "^1.1.3",
|
"@actions/io": "^1.1.3",
|
||||||
"compare-versions": "^6.0.0-rc.1"
|
"compare-versions": "^6.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^29.5.2",
|
"@types/jest": "^29.5.3",
|
||||||
"@types/node": "^20.3.0",
|
"@types/node": "^20.4.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^5.59.11",
|
"@typescript-eslint/eslint-plugin": "^6.2.0",
|
||||||
"@typescript-eslint/parser": "^5.59.11",
|
"@typescript-eslint/parser": "^6.2.0",
|
||||||
"@vercel/ncc": "^0.36.1",
|
"@vercel/ncc": "^0.36.1",
|
||||||
"eslint": "^8.42.0",
|
"eslint": "^8.46.0",
|
||||||
"eslint-config-prettier": "^8.8.0",
|
"eslint-config-prettier": "^8.9.0",
|
||||||
"eslint-plugin-import": "^2.27.5",
|
"eslint-plugin-import": "^2.28.0",
|
||||||
"eslint-plugin-jest": "^27.2.1",
|
"eslint-plugin-jest": "^27.2.3",
|
||||||
"eslint-plugin-prettier": "^4.2.1",
|
"eslint-plugin-prettier": "^5.0.0",
|
||||||
"jest": "^29.5.0",
|
"jest": "^29.6.2",
|
||||||
"jest-circus": "^29.5.0",
|
"jest-circus": "^29.6.2",
|
||||||
"nock": "^13.3.1",
|
"nock": "^13.3.2",
|
||||||
"prettier": "^2.8.8",
|
"prettier": "^3.0.0",
|
||||||
"simple-git-hooks": "^2.8.1",
|
"simple-git-hooks": "^2.9.0",
|
||||||
"ts-jest": "^29.1.0",
|
"ts-jest": "^29.1.1",
|
||||||
"typescript": "^5.1.3"
|
"typescript": "^5.1.6"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/shivammathur/setup-php/issues"
|
"url": "https://github.com/shivammathur/setup-php/issues"
|
||||||
|
@ -222,6 +222,14 @@
|
|||||||
"version_prefix": "v",
|
"version_prefix": "v",
|
||||||
"version_parameter": "-V"
|
"version_parameter": "-V"
|
||||||
},
|
},
|
||||||
|
"castor": {
|
||||||
|
"type": "custom-function",
|
||||||
|
"domain": "https://github.com",
|
||||||
|
"repository": "jolicode/castor",
|
||||||
|
"function": "castor",
|
||||||
|
"version_prefix": "v",
|
||||||
|
"version_parameter": "-V"
|
||||||
|
},
|
||||||
"composer": {
|
"composer": {
|
||||||
"type": "custom-function",
|
"type": "custom-function",
|
||||||
"domain": "https://getcomposer.org",
|
"domain": "https://getcomposer.org",
|
||||||
|
@ -104,6 +104,15 @@ link_libraries() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Link opcache extension to extensions directory.
|
||||||
|
link_opcache() {
|
||||||
|
opcache_ini="$brew_prefix"/etc/php/"$version"/conf.d/ext-opcache.ini
|
||||||
|
if [ -e "$opcache_ini" ]; then
|
||||||
|
opcache_ext=$(grep -Eo "zend_extension.*opcache.*\.so" "$opcache_ini" | cut -d '"' -f 2)
|
||||||
|
sudo ln -sf "$opcache_ext" "$ext_dir"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Patch brew to overwrite packages.
|
# Patch brew to overwrite packages.
|
||||||
patch_brew() {
|
patch_brew() {
|
||||||
formula_installer="${brew_repo:?}"/Library/Homebrew/formula_installer.rb
|
formula_installer="${brew_repo:?}"/Library/Homebrew/formula_installer.rb
|
||||||
@ -233,6 +242,7 @@ setup_php() {
|
|||||||
semver="$(php_semver)"
|
semver="$(php_semver)"
|
||||||
extra_version="$(php_extra_version)"
|
extra_version="$(php_extra_version)"
|
||||||
configure_php
|
configure_php
|
||||||
|
link_opcache
|
||||||
set_output "php-version" "$semver"
|
set_output "php-version" "$semver"
|
||||||
if [ "${semver%.*}" != "$version" ]; then
|
if [ "${semver%.*}" != "$version" ]; then
|
||||||
add_log "${cross:?}" "PHP" "Could not setup PHP $version"
|
add_log "${cross:?}" "PHP" "Could not setup PHP $version"
|
||||||
|
@ -57,7 +57,7 @@ Function Get-ToolVersion() {
|
|||||||
Param (
|
Param (
|
||||||
[Parameter(Position = 0, Mandatory = $true)]
|
[Parameter(Position = 0, Mandatory = $true)]
|
||||||
$tool,
|
$tool,
|
||||||
[Parameter(Position = 1, Mandatory = $true)]
|
[Parameter(Position = 1, Mandatory = $false)]
|
||||||
$param
|
$param
|
||||||
)
|
)
|
||||||
$alp = "[a-zA-Z0-9\.]"
|
$alp = "[a-zA-Z0-9\.]"
|
||||||
@ -72,7 +72,9 @@ Function Get-ToolVersion() {
|
|||||||
Set-Variable -Name 'composer_version' -Value $composer_version -Scope Global
|
Set-Variable -Name 'composer_version' -Value $composer_version -Scope Global
|
||||||
return "$composer_version"
|
return "$composer_version"
|
||||||
}
|
}
|
||||||
return . $tool $param 2> $null | ForEach-Object { $_ -replace "composer $version_regex", '' } | Select-String -Pattern $version_regex | Select-Object -First 1 | ForEach-Object { $_.matches.Value }
|
if($null -ne $param) {
|
||||||
|
return . $tool $param 2> $null | ForEach-Object { $_ -replace "composer $version_regex", '' } | Select-String -Pattern $version_regex | Select-Object -First 1 | ForEach-Object { $_.matches.Value }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Helper function to configure tools.
|
# Helper function to configure tools.
|
||||||
@ -135,8 +137,7 @@ Function Add-Tool() {
|
|||||||
[Parameter(Position = 1, Mandatory = $true)]
|
[Parameter(Position = 1, Mandatory = $true)]
|
||||||
[ValidateNotNull()]
|
[ValidateNotNull()]
|
||||||
$tool,
|
$tool,
|
||||||
[Parameter(Position = 2, Mandatory = $true)]
|
[Parameter(Position = 2, Mandatory = $false)]
|
||||||
[ValidateNotNull()]
|
|
||||||
$ver_param
|
$ver_param
|
||||||
)
|
)
|
||||||
if (Test-Path $bin_dir\$tool) {
|
if (Test-Path $bin_dir\$tool) {
|
||||||
|
@ -19,7 +19,7 @@ get_tool_version() {
|
|||||||
composer_version="$(grep -Ea "const\sVERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")"
|
composer_version="$(grep -Ea "const\sVERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")"
|
||||||
fi
|
fi
|
||||||
echo "$composer_version" | sudo tee /tmp/composer_version
|
echo "$composer_version" | sudo tee /tmp/composer_version
|
||||||
else
|
elif [ -n "$param" ]; then
|
||||||
$tool "$param" 2>/dev/null | sed -Ee "s/[Cc]omposer(.)?$version_regex//g" | grep -Eo "$version_regex" | head -n 1
|
$tool "$param" 2>/dev/null | sed -Ee "s/[Cc]omposer(.)?$version_regex//g" | grep -Eo "$version_regex" | head -n 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -31,10 +31,6 @@ set_base_version() {
|
|||||||
else
|
else
|
||||||
set_base_version_codename
|
set_base_version_codename
|
||||||
set_base_version_id
|
set_base_version_id
|
||||||
|
|
||||||
# Remove once PPAs start having bookworm releases
|
|
||||||
[ "$VERSION_CODENAME" = 'bookworm' ] && VERSION_CODENAME="bullseye"
|
|
||||||
|
|
||||||
printf "ID=%s\nVERSION_ID=%s\nVERSION_CODENAME=%s\n" "$ID" "$VERSION_ID" "$VERSION_CODENAME" | tee /tmp/os-release >/dev/null 2>&1
|
printf "ID=%s\nVERSION_ID=%s\nVERSION_CODENAME=%s\n" "$ID" "$VERSION_ID" "$VERSION_CODENAME" | tee /tmp/os-release >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -59,7 +55,7 @@ update_lists() {
|
|||||||
if [[ -n "$ppa" && -n "$ppa_search" ]]; then
|
if [[ -n "$ppa" && -n "$ppa_search" ]]; then
|
||||||
list="$list_dir"/"$(basename "$(grep -lr "$ppa_search" "$list_dir")")"
|
list="$list_dir"/"$(basename "$(grep -lr "$ppa_search" "$list_dir")")"
|
||||||
status_file=/tmp/"${ppa/\//_}"
|
status_file=/tmp/"${ppa/\//_}"
|
||||||
elif grep -Eq '^deb ' "$list_file"; then
|
elif [ -e "$list_file" ] && grep -Eq '^deb ' "$list_file"; then
|
||||||
list="$list_file"
|
list="$list_file"
|
||||||
fi
|
fi
|
||||||
if [ ! -e "$status_file" ]; then
|
if [ ! -e "$status_file" ]; then
|
||||||
|
16
src/tools.ts
16
src/tools.ts
@ -230,6 +230,21 @@ export async function addBlackfirePlayer(data: RS): Promise<string> {
|
|||||||
return addArchive(data);
|
return addArchive(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function to add Castor
|
||||||
|
*
|
||||||
|
* @param data
|
||||||
|
*/
|
||||||
|
export async function addCastor(data: RS): Promise<string> {
|
||||||
|
data['tool'] = 'castor.' + data['os'].replace('win32', 'windows') + '-amd64';
|
||||||
|
data['url'] = await getUrl(data);
|
||||||
|
data['tool'] = 'castor';
|
||||||
|
data['version_parameter'] = fs.existsSync('castor.php')
|
||||||
|
? data['version_parameter']
|
||||||
|
: '';
|
||||||
|
return await addArchive(data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to add composer
|
* Function to add composer
|
||||||
*
|
*
|
||||||
@ -479,6 +494,7 @@ export async function getData(
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const functionRecord: Record<string, (data: RS) => Promise<string>> = {
|
export const functionRecord: Record<string, (data: RS) => Promise<string>> = {
|
||||||
|
castor: addCastor,
|
||||||
composer: addComposer,
|
composer: addComposer,
|
||||||
deployer: addDeployer,
|
deployer: addDeployer,
|
||||||
dev_tools: addDevTools,
|
dev_tools: addDevTools,
|
||||||
|
Reference in New Issue
Block a user