91 Commits
1.0.6 ... 1.7.0

Author SHA1 Message Date
github-actions[bot]
959ba21b72 Updating lists 2022-01-18 15:14:29 +00:00
Shivam Mathur
5f06df1e0f Happy new year [skip ci] 2022-01-02 08:52:17 +00:00
Shivam Mathur
0d8f2cf62b Refactor workflows 2021-12-17 18:27:03 +05:30
Shivam Mathur
03f7f56b30 Bump Node version to 16.x 2021-12-17 18:27:03 +05:30
Shivam Mathur
79c4acf033 Add npm release workflow 2021-12-17 18:27:02 +05:30
Shivam Mathur
a173299cf0 Bump version to 1.7.0 2021-12-17 18:26:20 +05:30
Shivam Mathur
b0f769600b Add repo, workflow and job in cache key
Reset cache date
2021-12-17 09:53:59 +00:00
github-actions[bot]
fd96c6ef49 Updating lists 2021-12-13 15:05:37 +00:00
Shivam Mathur
506c0905f4 Update versions in README 2021-12-06 08:26:51 +05:30
github-actions[bot]
f509c0eeeb Updating lists 2021-12-02 15:02:55 +00:00
Shivam Mathur
354b2b75c4 Reset cache for PHP 8.1 and above 2021-11-24 13:02:42 +00:00
github-actions[bot]
75fdf09203 Updating lists 2021-11-10 15:12:14 +00:00
Shivam Mathur
2f58e22e3c Reset cache for imap on macOS 2021-10-22 11:36:38 +05:30
Shivam Mathur
2e789925e4 Bump macos cache 2021-10-05 13:09:10 +05:30
Shivam Mathur
5b215c413b Add patch for ca-certificate and reset cache on darwin 2021-10-05 12:54:35 +05:30
Shivam Mathur
20eb4f1c8b Update README 2021-09-27 04:01:02 +05:30
Shivam Mathur
21e27c8c67 Remove Ubuntu 16.04
Use /etc/os-release in release workflow
2021-09-22 05:34:52 +05:30
Shivam Mathur
da8a00bfab Suppress error if library is from lists 2021-09-19 20:09:38 +05:30
Shivam Mathur
59bc1e6fcf Fix to add dependency extensions config 2021-09-19 16:07:21 +05:30
Shivam Mathur
9b4ef64d32 Fix filter_extensions in darwin.sh 2021-09-19 08:03:18 +05:30
Shivam Mathur
e51a646160 Improve support for extensions with custom support on setup-php 2021-09-19 07:53:27 +05:30
Shivam Mathur
da71add69c Bump version to 1.6.2
Update Node.js dependencies
2021-09-19 06:28:55 +05:30
Shivam Mathur
b52930e590 Refactor to use setup-php 2021-09-19 06:06:31 +05:30
Shivam Mathur
3572ca5db9 Update README 2021-09-19 05:36:56 +05:30
Shivam Mathur
b8a361a25a Fix 8.1 cache
Reset cache date
2021-09-19 03:29:29 +05:30
github-actions[bot]
eb0ccb73d5 Updating lists 2021-09-16 15:05:10 +00:00
github-actions[bot]
2a56d34ea0 Updating lists 2021-09-01 12:36:03 +00:00
Shivam Mathur
075da4be87 Sort darwin extensions list 2021-09-01 18:00:01 +05:30
github-actions[bot]
b660f29789 Updating lists 2021-09-01 12:27:24 +00:00
Shivam Mathur
f73bbb0929 Update darwin extensions list in libs workflow
Rename workflow
2021-09-01 17:54:58 +05:30
Shivam Mathur
caa5d3f915 Minor refactor in darwin.sh 2021-09-01 17:43:30 +05:30
Shivam Mathur
6c67ee1261 Reset cache for PHP 8.1 2021-09-01 11:11:42 +05:30
Shivam Mathur
502885cc75 Update sponsor link in README [skip ci]. 2021-08-28 13:49:22 +05:30
Shivam Mathur
d3929ece8e Remove FUNDING.yml and use shivammathur/.github [skip ci] 2021-08-28 13:38:37 +05:30
Shivam Mathur
9355729f4a Reset cache on Windows 2021-08-23 20:06:03 +05:30
Shivam Mathur
7f4f2f921c Rename macos-11.0 to macos-11 2021-08-18 09:43:45 +05:30
Shivam Mathur
bcdf57190d Fix extension directory for PHP 8.1 on Linux
After d47fe5f570 extension directory for PHP 8.1 should be "/usr/lib/php/<phpapi>"
2021-08-17 12:27:15 +05:30
github-actions[bot]
fa913560e6 Updating lists 2021-08-04 15:10:27 +00:00
Shivam Mathur
90fc296fbc Add API version for PHP 8.1 2021-08-01 06:13:04 +05:30
Shivam Mathur
f851596ef0 Add support to skip dependency extensions 2021-07-23 11:04:34 +05:30
Shivam Mathur
319d6f9a6d Reset cache date for imagick, and apcu on PHP 8.1 2021-07-23 09:40:29 +05:30
Shivam Mathur
882ea8f750 Bump version to 1.6.1 2021-07-07 19:47:31 +05:30
Shivam Mathur
7e3d12a4c4 Skip restoring existing libraries
Cleanup add_library and its helper function in darwin.sh
2021-07-07 19:33:10 +05:30
Shivam Mathur
96afc02cad Fix library cache on macOS 2021-07-07 13:08:12 +05:30
Shivam Mathur
024a2e796f Add brew environment variables 2021-07-03 16:49:08 +05:30
Shivam Mathur
65ea75914e Add extension dependency support for Darwin
Refactor extension.sh to 3 scripts

Update dependencies

Minor fixes in cache.ts and tests

Improve get_api_version in cache.sh

Improve logs

Use @actions/cache to cache dependencies

Refactor linux.sh

Refactor Node.js code

Do not setup dependencies for old PHP

Remove duplicate dependency extensions in linux

Bump version to 1.6.0
2021-07-03 16:12:27 +05:30
Shivam Mathur
b9734e30e3 Reset cache if imagick is in extensions on macOS. 2021-06-30 20:41:22 +05:30
github-actions[bot]
a91eaeae66 Updating lists 2021-06-11 15:07:09 +00:00
github-actions[bot]
5fd9e31957 Updating lists 2021-06-03 15:16:23 +00:00
Shivam Mathur
3a9c03a639 Update dependencies
Update to Jest 27

Update tsconfig.json
2021-05-31 08:02:04 +05:30
github-actions[bot]
7c356bdccc Updating lists 2021-05-20 16:38:08 +00:00
github-actions[bot]
dc78eb217c Updating lists 2021-05-19 15:14:27 +00:00
github-actions[bot]
b98cea8adc Updating lists 2021-05-13 15:05:16 +00:00
Shivam Mathur
470b94d722 Clear cache on Windows for imagick 2021-05-12 19:43:35 +05:30
Shivam Mathur
acce7e61bc Update dependencies 2021-05-11 18:09:52 +05:30
github-actions[bot]
c2ce0737e9 Updating lists 2021-05-06 15:22:12 +00:00
github-actions[bot]
a6cb9851d8 Updating lists 2021-04-22 15:05:53 +00:00
Shivam Mathur
9d87cbc9e2 Update README.md 2021-04-06 13:55:10 +05:30
Shivam Mathur
dfaa2c7ea5 Fix extension_dir 2021-04-03 16:05:05 +05:30
github-actions[bot]
a0bace7fd6 Updating lists 2021-04-01 15:20:02 +00:00
github-actions[bot]
3da1e049db Updating lists 2021-03-18 15:22:07 +00:00
Shivam Mathur
1d41d22536 Fix Linux cache 2021-03-15 00:38:01 +05:30
Shivam Mathur
e8a5ac648c Clear cache
Update dependencies

Update ubuntu YAML labels in README
2021-03-13 02:24:16 +05:30
Shivam Mathur
61c3ac571e Fix libs workflow 2021-03-08 21:14:58 +05:30
github-actions[bot]
07f87f7871 Updating lists 2021-03-07 17:15:41 +00:00
Shivam Mathur
5a367d30f4 Add lists for libraries
Add workflow to update library lists

Refactor extensions.sh
2021-03-07 22:41:52 +05:30
Shivam Mathur
ac5140901c Remove lists
Fix extension dependency setup on linux

Update Node.js dependencies
2021-03-07 03:21:44 +05:30
Shivam Mathur
7df1333d2b Merge pull request #20 from shivammathur/develop
1.4.0
2020-12-30 14:20:37 -08:00
Shivam Mathur
9ef47bc1b1 Change extensions directory for PHP 5.3 on Ubuntu
Add support for PHP 5.6+ on MacOS ARM

Update lists for PHP 5.3

Clear cache

Bump version to 1.4.0
2020-12-31 03:47:46 +05:30
Shivam Mathur
bc3f3bc008 Merge pull request #19 from shivammathur/develop
1.3.3
2020-12-16 23:49:46 -08:00
Shivam Mathur
30e4da7ed2 Adjust extension_dir for PHP 8 on Ubuntu
Reset extension cache

Update dependencies

Update lists
2020-12-17 13:16:33 +05:30
Shivam Mathur
1b7b26deeb Merge pull request #18 from shivammathur/develop
1.3.2
2020-11-26 21:14:56 +05:30
Shivam Mathur
0487f686e2 Clear cache
Bump version to 1.3.2

Update dependencies
2020-11-26 21:14:34 +05:30
Shivam Mathur
f5a7bad686 Merge pull request #17 from shivammathur/develop
1.3.1
2020-10-24 07:40:06 +05:30
Shivam Mathur
d48014e2bb Add PHP 8.1 and macos-11.0 to the README
Update Node.js dependencies

Bump version to 1.3.1
2020-10-24 07:31:37 +05:30
Shivam Mathur
3809746e7d Merge pull request #16 from shivammathur/develop
1.3.0
2020-10-13 14:29:02 +05:30
Shivam Mathur
f55a0043ab Add support for PHP 8.1
Add support for alias latest

Bump version to 1.3.0
2020-10-13 14:22:54 +05:30
Shivam Mathur
154644c7b4 Merge pull request #15 from shivammathur/develop
1.2.0
2020-09-30 10:13:45 +05:30
Shivam Mathur
60ee2fe878 Bump version to 1.2.0 2020-09-30 10:08:07 +05:30
Shivam Mathur
4db45d6171 Merge pull request #14 from shivammathur/develop
1.1.3
2020-08-10 12:39:37 +05:30
Shivam Mathur
7045a9c4c7 Add cubrid to the lists
Update README

Bump version to 1.1.3
2020-08-10 12:22:10 +05:30
Shivam Mathur
506984d835 Merge pull request #13 from shivammathur/develop
1.1.2
2020-08-04 06:50:24 +05:30
Shivam Mathur
f94c56d97f Change PHP 8.0 prefix for linux
Update extension lists

Bump version to 1.1.2
2020-08-04 05:55:46 +05:30
Shivam Mathur
4309c25508 Merge pull request #12 from shivammathur/develop
Hotfix in 1.1.1
2020-07-18 22:16:55 +05:30
Shivam Mathur
7af896286c Update dependencies
Apply GHSA-p6mc-m468-83gw advisory to fix prototype pollution in lodash
2020-07-18 22:09:33 +05:30
Shivam Mathur
9666885116 Merge pull request #11 from shivammathur/develop
1.1.1
2020-06-19 10:37:03 +05:30
Shivam Mathur
7963f6b10a Bump version to 1.1.1 2020-06-19 10:27:23 +05:30
Shivam Mathur
0fe00bc9bd Update README 2020-06-03 17:26:02 +05:30
Shivam Mathur
1cc42c3174 Merge pull request #10 from shivammathur/develop
1.1.0
2020-06-03 17:22:37 +05:30
Shivam Mathur
4bb3575393 Bump version to 1.1.0 2020-06-03 17:12:35 +05:30
Shivam Mathur
44c50f8364 Update lists 2020-06-03 17:04:40 +05:30
52 changed files with 65452 additions and 7531 deletions

View File

@@ -1,7 +1,7 @@
{ {
"env": { "node": true, "jest": true }, "env": { "node": true, "jest": true },
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "ecmaVersion": 2020, "sourceType": "module" }, "parserOptions": { "ecmaVersion": 2019, "sourceType": "module" },
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/eslint-recommended",
@@ -10,14 +10,7 @@
"plugin:import/warnings", "plugin:import/warnings",
"plugin:import/typescript", "plugin:import/typescript",
"plugin:prettier/recommended", "plugin:prettier/recommended",
"prettier/@typescript-eslint" "prettier"
], ],
"plugins": ["@typescript-eslint", "jest"], "plugins": ["@typescript-eslint", "jest"]
"rules": {
"camelcase": "off",
"require-atomic-updates": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/no-unused-vars": "off"
}
} }

7
.github/FUNDING.yml vendored
View File

@@ -1,7 +0,0 @@
# These are supported funding model platforms
github: shivammathur
issuehunt: shivammathur
patreon: shivammathur
liberapay: shivammathur
custom: https://www.paypal.me/shivammathur

View File

@@ -1,23 +1,42 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help us improve about: Nice, you found a bug!
title: '' title: ''
labels: '' labels: 'bug'
assignees: '' assignees: 'shivammathur'
--- ---
**Describe the bug** **Describe the bug**
A clear and concise description of what the bug is. <!-- Please describe the bug concisely. -->
**Version**
- [ ] I have checked releases and the bug exists in the latest patch version of `v1`.
- [ ] `v2`
- [ ] `v1`
**Runners**
<!-- Please mark the GitHub Action runner your workflow uses. -->
- [ ] GitHub Hosted
- [ ] Self Hosted
**Operating systems**
<!-- Please mention the operating systems your workflow uses. -->
**PHP versions**
<!-- Please mention the PHP versions your workflow uses. -->
**To Reproduce** **To Reproduce**
Please provide the GitHub Action `.yml` file. <!-- Please provide the relevant steps of your workflow `.yml` file. -->
**Expected behavior** **Expected behavior**
A clear and concise description of what you expected to happen. <!-- A clear and concise description of what you expected to happen. -->
**Screenshots** **Screenshots/Logs**
If applicable, add screenshots to help explain your problem. <!-- If applicable, add screenshots or logs to help explain your problem. -->
**Additional context** **Additional context**
Add any other context about the problem here. <!-- Add any other context about the problem here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -1,20 +1,26 @@
--- ---
name: Feature request name: Feature request
about: Suggest an idea for this project about: Suggest a new feature
title: '' title: ''
labels: '' labels: 'enhancement'
assignees: '' assignees: 'shivammathur'
--- ---
**Is your feature request related to a problem? Please describe.** **Describe the feature**
A clear and concise description of what the problem is. Ex. I want to improve [...] <!-- Please describe concisely the feature you want to add. -->
**Describe the solution you'd like** **Version**
A clear and concise description of what you want to happen. - [ ] I have checked releases and the feature is missing in the latest patch version of `v1`.
**Describe alternatives you've considered** **Underlying issue**
A clear and concise description of any alternative solutions or features you've considered. <!-- Please describe the issue this would solve. -->
**Describe alternatives**
<!-- Please mention any alternative solutions you've considered. -->
**Additional context** **Additional context**
Add any other context or screenshots about the feature request here. <!-- Add any other context or screenshots about the feature request here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -7,14 +7,13 @@ labels: bug or enhancement
## A Pull Request should be associated with an Issue. ## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs. > If you're fixing a bug, adding a new feature or improving something please provide the details in Issues,
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues, > so that the development can be pointed in the intended direction.
> and potentially we'll be able to point development in a particular direction.
Related issue: Related issue: <!-- Please link the related issue -->
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md) > Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR > Thank you for your contribution.
### Description ### Description
@@ -26,7 +25,12 @@ This PR [briefly explain what it does]
- [ ] I have run `npm run format` before the commit. - [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit. - [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit. - [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors. - [ ] `npm test` returns with no unit test errors and all code covered.
> In case this PR edits any scripts:
- [ ] I have checked the edited scripts for syntax.
- [ ] I have tested the changes in an integration test (If yes, provide workflow link).
<!-- <!--
- Please target the develop branch when submitting the pull request. - Please target the develop branch when submitting the pull request.

View File

@@ -1,33 +0,0 @@
---
name: 🐞 Bug Fix
about: You have a fix for a bug?
labels: bug
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: ⚙ Improvement
about: You have some improvement to make cache-extensions better?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: 🎉 New Feature
about: You have implemented some neat idea that you want to make part of cache-extensions?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

70
.github/workflows/git-release.yml vendored Normal file
View File

@@ -0,0 +1,70 @@
name: Git release workflow
on:
workflow_dispatch:
schedule:
- cron: '0 15 * * *'
jobs:
update:
name: update
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-18.04]
steps:
- name: Update lists
run: |
. /etc/os-release
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$VERSION_CODENAME"-libs
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: lists
path: |
/tmp/*-libs
sync:
name: sync
needs: update
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: develop
fetch-depth: 0
- name: Download lists
uses: actions/download-artifact@v2
with:
name: lists
path: src/lists
- name: Update darwin extensions list
run: |
brew tap shivammathur/extensions
find "$(brew --repository shivammathur/extensions)"/.github/deps -mindepth 1 -type d -name "*" -exec basename {} \; | sort > src/lists/darwin-extensions
- name: Update tags and branches
run: |
push_ref() {
ref=$1
git push -f https://${{ github.repository_owner }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git "$ref" || true
}
git config --local user.email "$bot_user_id+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
if [ "$(git status --porcelain=v1 2>/dev/null | wc -l)" != "0" ]; then
git add .
git commit -m "Updating lists"
fi
push_ref develop
semver=$(git tag --sort=-refname | awk 'match($0, /^[0-9]+\.[0-9]+\.[0-9]+$/)' | head -n 1)
rolling=$(git tag --sort=-refname | awk 'match($0, /^v[0-9]/)' | head -n 1)
for branch in master releases/$rolling; do
git checkout $branch
if [ "$(git rev-parse "$branch")" != "$(git rev-parse develop)" ]; then
git merge --allow-unrelated-histories develop || true
fi
push_ref "$branch"
done
for tag in $semver $rolling; do
git tag -fa "$tag" -m "Update %1 tag"
push_ref "$tag"
done

69
.github/workflows/node-release.yml vendored Normal file
View File

@@ -0,0 +1,69 @@
name: Node release workflow
on:
release:
types: [created]
workflow_dispatch:
inputs:
skip:
description: Skip release to repository
required: false
tag:
description: Tag name
required: true
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@v1
with:
allowed-endpoints:
github.com:443
npm.pkg.github.com:443
registry.npmjs.org:443
- name: Checkout release
if: github.event_name != 'workflow_dispatch'
uses: actions/checkout@v2
- name: Checkout tag
uses: actions/checkout@v2
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ github.event.inputs.tag }}
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '16.x'
registry-url: https://registry.npmjs.org
- name: Install dependencies and add lib
run: |
npm install
npm run build
sed -i -e '/lib\//d' .gitignore
- name: Publish to NPM
if: "!contains(github.event.inputs.skip, 'skip-npm')"
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Change to GitHub Packages registry
uses: actions/setup-node@v2
with:
registry-url: https://npm.pkg.github.com
scope: '@shivammathur'
- name: Patch package.json
run: |
sed -i 's#"name": "#"name": "@shivammathur/#' package.json
- name: Publish to GitHub Packages
if: "!contains(github.event.inputs.skip, 'skip-github-packages')"
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,4 +1,4 @@
name: Main workflow name: Node test workflow
on: [push, pull_request] on: [push, pull_request]
jobs: jobs:
run: run:
@@ -8,10 +8,10 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Setup Node.js 12.x - name: Setup Node.js 16.x
uses: actions/setup-node@v1 uses: actions/setup-node@v2
with: with:
node-version: 12.x node-version: 16.x
- name: Install dependencies - name: Install dependencies
run: npm install run: npm install

View File

@@ -1,11 +1,12 @@
{ {
"arrowParens": "avoid",
"bracketSpacing": false,
"endOfLine": "auto",
"parser": "typescript",
"printWidth": 80, "printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true, "semi": true,
"singleQuote": true, "singleQuote": true,
"tabWidth": 2,
"trailingComma": "none", "trailingComma": "none",
"bracketSpacing": false, "useTabs": false
"arrowParens": "avoid", }
"parser": "typescript"
}

View File

@@ -1,7 +1,7 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2020 shivammathur and contributors Copyright (c) 2020-2022 shivammathur and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

100
README.md
View File

@@ -3,20 +3,24 @@
<p align="center"> <p align="center">
<a href="https://github.com/shivammathur/cache-extensions" title="Cache PHP extensions in GitHub Actions"><img alt="GitHub Actions status" src="https://github.com/shivammathur/cache-extensions/workflows/Main%20workflow/badge.svg"></a> <a href="https://github.com/shivammathur/cache-extensions" title="Cache PHP extensions in GitHub Actions"><img alt="GitHub Actions status" src="https://github.com/shivammathur/cache-extensions/workflows/Main%20workflow/badge.svg"></a>
<a href="https://codecov.io/gh/shivammathur/cache-extensions" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/cache-extensions/branch/master/graph/badge.svg"></a> <a href="https://codecov.io/gh/shivammathur/cache-extensions" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/cache-extensions/branch/master/graph/badge.svg"></a>
<a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg"></a> <a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></a>
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-%3E%3D%205.3-8892BF.svg"></a> <a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.3%20to%208.2-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
</p> </p>
Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action has to be used along with [shivammathur/setup-php](https://github.com/shivammathur/setup-php "Setup PHP") and [actions/cache](https://github.com/actions/cache "Cache in GitHub Actions") GitHub Actions. It configures the environment required to cache PHP extensions. Refer to [Usage](#memo-usage "How to use this") section to see how to use this. Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action has to be used along with [shivammathur/setup-php](https://github.com/shivammathur/setup-php "Setup PHP") and [actions/cache](https://github.com/actions/cache "Cache in GitHub Actions") GitHub Actions. It configures the environment required to cache PHP extensions. Refer to [Usage](#memo-usage "How to use this") section for details and example workflow.
## Contents ## Contents
- [PHP Support](#tada-php-support) - [PHP Support](#tada-php-support)
- [OS/Platform Support](#cloud-osplatform-support) - [OS/Platform Support](#cloud-osplatform-support)
- [Usage](#memo-usage) - [Usage](#memo-usage)
- [Inputs](#inputs)
- [Workflow](#workflow)
- [Thread Safe Setup](#thread-safe-setup)
- [License](#scroll-license) - [License](#scroll-license)
- [Contributions](#1-contributions) - [Contributions](#1-contributions)
- [Support this project](#sparkling_heart-support-this-project) - [Support This Project](#sparkling_heart-support-this-project)
- [Dependencies](#package-dependencies)
## :tada: PHP Support ## :tada: PHP Support
@@ -28,30 +32,55 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|5.6|`Stable`|`End of life`| |5.6|`Stable`|`End of life`|
|7.0|`Stable`|`End of life`| |7.0|`Stable`|`End of life`|
|7.1|`Stable`|`End of life`| |7.1|`Stable`|`End of life`|
|7.2|`Stable`|`Security fixes only`| |7.2|`Stable`|`End of life`|
|7.3|`Stable`|`Active`| |7.3|`Stable`|`End of life`|
|7.4|`Stable`|`Active`| |7.4|`Stable`|`Security fixes only`|
|8.0|`Experimental`|`In development`| |8.0|`Stable`|`Active`|
|8.1|`Stable`|`Active`|
|8.2|`Nightly`|`In development`|
## :cloud: OS/Platform Support ## :cloud: OS/Platform Support
|Virtual environment|matrix.operating-system| |Virtual environment|YAML workflow label|
|--- |--- | |--- |--- |
|Ubuntu 20.04|`ubuntu-latest` or `ubuntu-20.04`|
|Ubuntu 18.04|`ubuntu-18.04`|
|Windows Server 2022|`windows-2022`|
|Windows Server 2019|`windows-latest` or `windows-2019`| |Windows Server 2019|`windows-latest` or `windows-2019`|
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`| |macOS Catalina 10.15|`macos-latest` or `macOS-10.15`|
|Ubuntu 16.04|`ubuntu-16.04`| |macOS Big Sur 11.x|`macOS-11`|
|macOS X Catalina 10.15|`macos-latest` or `macOS-10.15`|
## :memo: Usage ## :memo: Usage
Inputs supported by this GitHub Action. Use this GitHub Action when the extensions you are adding in [setup-php](https://github.com/shivammathur/setup-php "setup-php GitHub Action") are installed and take a long time to set up. If you are using extensions which have the result `Installed and enabled` in the logs like `pecl` extensions on `Ubuntu` or extensions which have custom support, it is recommended to use this action to cache your extensions.
- php-version `required` ### Inputs
- extensions `required`
- key `required` #### `php-version` (required)
- Specify the PHP version you want to set up.
- Accepts a `string`. For example `'8.1'`.
- Accepts `latest` to set up the latest stable PHP version.
- Accepts `nightly` to set up a nightly build from the master branch of PHP.
- Accepts the format `d.x`, where `d` is the major version. For example `5.x`, `7.x` and `8.x`.
- See [PHP support](#tada-php-support) for supported PHP versions.
#### `extensions` (required)
- Specify the extensions you want to set up.
- Accepts a `string` in csv-format. For example `mbstring, xdebug, :opcache`.
- Extensions prefixed with `:` are ignored in output cache key.
#### `key` (required)
- Specify the key to identify the cache version.
- Accepts any `string`. For example `cache-v1`.
- Changing this would reset the cache.
See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info. See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info.
### Workflow
> Cache extensions in a PHP workflow > Cache extensions in a PHP workflow
```yaml ```yaml
@@ -61,7 +90,7 @@ jobs:
strategy: strategy:
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] operating-system: [ubuntu-latest, windows-latest, macos-latest]
php-versions: ['7.2', '7.3', '7.4'] php-versions: ['7.4', '8.0', '8.1']
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }} name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
env: env:
extensions: intl, pcov extensions: intl, pcov
@@ -71,7 +100,7 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Setup cache environment - name: Setup cache environment
id: cache-env id: extcache
uses: shivammathur/cache-extensions@v1 uses: shivammathur/cache-extensions@v1
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
@@ -79,11 +108,11 @@ jobs:
key: ${{ env.key }} key: ${{ env.key }}
- name: Cache extensions - name: Cache extensions
uses: actions/cache@v1 uses: actions/cache@v2
with: with:
path: ${{ steps.cache-env.outputs.dir }} path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.cache-env.outputs.key }} key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.cache-env.outputs.key }} restore-keys: ${{ steps.extcache.outputs.key }}
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@v2
@@ -92,19 +121,34 @@ jobs:
extensions: ${{ env.extensions }} extensions: ${{ env.extensions }}
``` ```
### Thread Safe Setup
If you set up both `TS` and `NTS` PHP versions on `Windows` in your workflow, please add `${{ env.phpts }}` to `key` and `restore-keys` inputs in `actions/cache` step in the above workflow to avoid a conflicting cache.
```yaml
- name: Cache extensions
uses: actions/cache@v2
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
restore-keys: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
```
## :scroll: License ## :scroll: License
The scripts and documentation in this project are released under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories. The code and documentation in this project are under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
## :+1: Contributions ## :+1: Contributions
Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/cache-extensions contribution guide"). If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/cache-extensions/issues "Issues reported"). Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/cache-extensions contribution guide"). If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/cache-extensions/issues "Issues reported").
## :sparkling_heart: Support this project ## :sparkling_heart: Support This Project
If this action helped you. If this action helped you.
- Please star the project and share it with the community. - Please star the project and share it. If you blog, please share your experience of using this action.
- If you blog, write about your experience while using this action. - Please support our work by sponsoring using [GitHub sponsors](https://github.com/sponsors/shivammathur).
- I maintain this in my free time, please support me with a [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") subscription or a one time contribution using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal").
- If you need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor") ## :package: Dependencies
- [Node.js dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Node.js dependencies")

View File

@@ -1,25 +1,22 @@
import * as install from '../src/cache'; import path from 'path';
import * as spu from 'setup-php/lib/utils';
import * as cache from '../src/cache';
import * as utils from '../src/utils'; import * as utils from '../src/utils';
/** /**
* Mock cache.ts * Mock cache.ts
*/ */
jest.mock('../src/cache', () => ({ jest.mock('../src/cache', () => ({
run: jest.fn().mockImplementation( run: jest.fn().mockImplementation(async (): Promise<string> => {
async (): Promise<string> => { const version: string = await spu.parseVersion(
let version: string = process.env['php-version'] || ''; process.env['php-version'] || ''
version = version.length > 1 ? version.slice(0, 3) : version + '.0'; );
const extensions = await utils.filterExtensions( const extensions = await utils.filterExtensions(
process.env['extensions'] || '' process.env['extensions'] || ''
); );
const key: string = process.env['key'] || ''; const key: string = process.env['key'] || '';
const script_path = 'extensions.sh'; return await utils.scriptCall('test', extensions, key, version);
})
return (
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
);
}
)
})); }));
/** /**
@@ -40,24 +37,22 @@ function setEnv(
} }
describe('Install', () => { describe('Install', () => {
const spath: string = path.join(__dirname, '../src/scripts/cache.sh');
it('Test Run', async () => { it('Test Run', async () => {
setEnv('7.0', 'xdebug, pcov', 'cache-v1'); setEnv('7.0', 'xdebug, pcov', 'cache-v1');
// @ts-ignore const script: string = '' + (await cache.run());
const script: string = await install.run(); expect(script).toContain(`bash ${spath} test "xdebug, pcov" cache-v1 7.0`);
expect(script).toContain('bash extensions.sh "xdebug, pcov" cache-v1 7.0');
}); });
it('Test Run', async () => { it('Test Run', async () => {
setEnv('7.4', 'xdebug, zip', 'cache-v2'); setEnv('7.4', 'xdebug, zip', 'cache-v2');
// @ts-ignore const script: string = '' + (await cache.run());
const script: string = await install.run(); expect(script).toContain(`bash ${spath} test "xdebug, zip" cache-v2 7.4`);
expect(script).toContain('bash extensions.sh "xdebug, zip" cache-v2 7.4');
}); });
it('Test Run', async () => { it('Test Run', async () => {
setEnv('7.4', 'xdebug, :zip', 'cache-v2'); setEnv('7.4', 'xdebug, :zip', 'cache-v2');
// @ts-ignore const script: string = '' + (await cache.run());
const script: string = await install.run(); expect(script).toContain(`bash ${spath} test "xdebug" cache-v2 7.4`);
expect(script).toContain('bash extensions.sh "xdebug" cache-v2 7.4');
}); });
}); });

View File

@@ -1,25 +1,33 @@
import * as fs from 'fs';
import * as path from 'path';
import * as utils from '../src/utils'; import * as utils from '../src/utils';
jest.mock('@actions/core', () => ({ async function cleanup(path: string): Promise<void> {
getInput: jest.fn().mockImplementation(key => { fs.unlink(path, error => {
return ['cache-extensions'].indexOf(key) !== -1 ? key : ''; if (error) {
}) console.log(error);
})); }
});
}
describe('Utils tests', () => { describe('Utils tests', () => {
it('checking getInput', async () => { it('checking getOutput', async () => {
process.env['test'] = 'cache-extensions'; const temp_dir: string = process.env['RUNNER_TEMP'] || '';
process.env['undefined'] = ''; const file_path: string = path.join(temp_dir, 'test');
expect(await utils.getInput('test', false)).toBe('cache-extensions'); fs.writeFileSync(file_path, 'test', {mode: 0o755});
expect(await utils.getInput('undefined', false)).toBe(''); expect(await utils.getOutput('test')).toBe('test');
expect(await utils.getInput('cache-extensions', false)).toBe( await cleanup(file_path);
'cache-extensions'
);
expect(await utils.getInput('DoesNotExist', false)).toBe('');
}); });
it('checking filterExtensions', async () => { it('checking filterExtensions', async () => {
expect(await utils.filterExtensions('a,:b,c')).toBe('a,c'); expect(await utils.filterExtensions('a,:b,c')).toBe('"a,c"');
expect(await utils.filterExtensions('a, :b, c')).toBe('a, c'); expect(await utils.filterExtensions('a, :b, c')).toBe('"a, c"');
});
it('checking scriptCall', async () => {
const script: string = path.join(__dirname, '../src/scripts/cache.sh');
expect(await utils.scriptCall('test a b')).toBe(
['bash', script, 'test', 'a', 'b'].join(' ')
);
}); });
}); });

View File

@@ -15,5 +15,5 @@ inputs:
description: 'Key to version the cache hash.' description: 'Key to version the cache hash.'
required: true required: true
runs: runs:
using: 'node12' using: 'node16'
main: 'dist/index.js' main: 'dist/index.js'

56482
dist/index.js vendored

File diff suppressed because one or more lines are too long

13098
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,15 +1,25 @@
{ {
"name": "cache-extensions", "name": "cache-extensions",
"version": "1.0.6", "version": "1.7.0",
"private": false, "private": false,
"description": "Cache extensions in GitHub Actions", "description": "Cache PHP extensions in GitHub Actions",
"main": "dist/index.js", "main": "lib/cache.js",
"types": "lib/cache.d.ts",
"directories": {
"lib": "lib",
"test": "__tests__",
"src": "src"
},
"files": [
"lib",
"src"
],
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"lint": "eslint **/*.ts --cache", "lint": "eslint **/src/*.ts --cache --fix",
"format": "prettier --write **/*.ts && git add .", "format": "prettier --write **/src/*.ts && git add .",
"format-check": "prettier --check **/*.ts", "format-check": "prettier --check **/src/*.ts",
"release": "ncc build src/cache.ts -o dist && git add -f dist/", "release": "ncc build -o dist && git add -f dist/",
"test": "jest" "test": "jest"
}, },
"repository": { "repository": {
@@ -19,36 +29,38 @@
"keywords": [ "keywords": [
"actions", "actions",
"php", "php",
"setup" "extension",
"cache"
], ],
"author": "shivammathur", "author": "shivammathur",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.2.4", "@actions/cache": "^1.0.8",
"@actions/exec": "^1.0.4" "@actions/core": "^1.6.0",
"@actions/exec": "^1.1.0",
"setup-php": "2.15.0"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^25.2.1", "@types/jest": "^27.0.3",
"@types/node": "^13.13.5", "@types/node": "^17.0.0",
"@typescript-eslint/eslint-plugin": "^2.31.0", "@typescript-eslint/eslint-plugin": "^5.7.0",
"@typescript-eslint/parser": "^2.31.0", "@typescript-eslint/parser": "^5.7.0",
"@zeit/ncc": "^0.22.1", "@vercel/ncc": "^0.33.0",
"eslint": "^7.0.0", "eslint": "^8.4.1",
"eslint-config-prettier": "^6.11.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.20.2", "eslint-plugin-import": "^2.25.3",
"eslint-plugin-jest": "^23.10.0", "eslint-plugin-jest": "^25.3.0",
"eslint-plugin-prettier": "^3.1.3", "eslint-plugin-prettier": "^4.0.0",
"husky": "^4.2.5", "jest": "^27.4.5",
"jest": "^26.0.1", "jest-circus": "^27.4.5",
"jest-circus": "^26.0.1", "prettier": "^2.5.1",
"prettier": "^2.0.5", "ts-jest": "^27.1.2",
"ts-jest": "^25.5.1", "typescript": "^4.5.4"
"typescript": "^3.8.3"
}, },
"husky": { "bugs": {
"skipCI": true, "url": "https://github.com/shivammathur/cache-extensions/issues"
"hooks": { },
"pre-commit": "npm run format && npm run lint && npm run build && npm run release" "simple-git-hooks": {
} "pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
} }
} }

View File

@@ -1,27 +1,60 @@
import {exec} from '@actions/exec/lib/exec'; import {exec} from '@actions/exec';
import * as cache from '@actions/cache';
import * as core from '@actions/core'; import * as core from '@actions/core';
import * as spu from 'setup-php/lib/utils';
import * as path from 'path'; import * as path from 'path';
import * as utils from './utils'; import * as utils from './utils';
/**
* Handle dependencies
*
* @param extensions
* @param version
*/
export async function handleDependencies(
extensions: string,
version: string
): Promise<void> {
if (!/^5.[3-5]$/.test(version) && /linux|darwin/.test(process.platform)) {
const cache_key: string = (await utils.getOutput('key')) + '-deps';
const cache_dir: string = path.join(
await spu.readEnv('RUNNER_TOOL_CACHE'),
'deps'
);
const cache_hit: string | undefined = await cache.restoreCache(
[cache_dir],
cache_key,
[cache_key]
);
await exec(await utils.scriptCall('dependencies', extensions, version));
if (!cache_hit) {
await cache.saveCache([cache_dir], cache_key);
}
}
}
/** /**
* Run the script * Run the script
*/ */
export async function run(): Promise<void> { export async function run(): Promise<void> {
try { try {
let version: string = await utils.getInput('php-version', true); const version: string = await spu.parseVersion(
version = version.length > 1 ? version.slice(0, 3) : version + '.0'; await spu.getInput('php-version', true)
const extensions = await utils.filterExtensions(
await utils.getInput('extensions', true)
); );
const key: string = await utils.getInput('key', true); const extensions: string = await utils.filterExtensions(
const script_path: string = path.join(__dirname, '../src/extensions.sh'); await spu.getInput('extensions', true)
await exec(
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
); );
const key: string = await spu.getInput('key', true);
await exec(await utils.scriptCall('data', extensions, version, key));
await handleDependencies(extensions, version);
} catch (error) { } catch (error) {
core.setFailed(error.message); core.setFailed((error as Error).message);
} }
} }
// call the run function // call the run function
run(); (async () => {
await run();
})().catch(error => {
core.setFailed(error.message);
});

View File

@@ -1,96 +0,0 @@
linux_extension_dir() {
apiv=$1
old_versions_linux="5.[4-5]"
if [ "$version" = "5.3" ]; then
echo "/home/runner/php/5.3.29/lib/php/extensions/no-debug-non-zts-$apiv"
elif [[ "$version" =~ $old_versions_linux ]]; then
echo "/usr/lib/php5/$apiv"
elif [ "$version" = "8.0" ]; then
echo "/home/runner/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
else
echo "/usr/lib/php/$apiv"
fi
}
darwin_extension_dir() {
apiv=$1
old_versions_darwin="5.[3-5]"
if [[ "$version" =~ $old_versions_darwin ]]; then
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$apiv"
else
echo "/usr/local/lib/php/pecl/$apiv"
fi
}
get_apiv() {
case $version in
5.3) echo "20090626" ;;
5.4) echo "20100525" ;;
5.5) echo "20121212" ;;
5.6) echo "20131226" ;;
7.0) echo "20151012" ;;
7.1) echo "20160303" ;;
7.2) echo "20170718" ;;
7.3) echo "20180731" ;;
7.4) echo "20190902" ;;
*)
php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
curl -sSL --retry 5 "$php_h" | grep "PHP_API_VERSION" | cut -d' ' -f 3
;;
esac
}
setup_dependencies() {
exts=$1
release=$2
empty_reg="\s+|^$"
script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )
exts=${exts//,/}
for ext in $exts; do
if grep -i -q -w "$ext" "$script_dir"/lists/"$release"-php"$version"-extensions; then
exts=${exts//$ext/}
fi
done
if [[ ! "$exts" =~ $empty_reg ]]; then
# shellcheck disable=SC2001,SC2086
exts=$(echo ${exts//pdo_} | sed "s/[^ ]* */php$version-&/g")
# shellcheck disable=SC2086
deps=$(apt-cache depends $exts 2>/dev/null | awk '/Depends: lib/{print$2}')
for dep in $deps; do
if grep -i -q -w "$dep" "$script_dir"/lists/"$release"-libs; then
deps=${deps//$dep/}
fi
done
if [[ ! "${deps[*]}" =~ $empty_reg ]]; then
echo "Adding ${deps[*]}"
# shellcheck disable=SC2068
sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y ${deps[@]}
fi
fi
}
extensions=$1
key=$2
version=$3
os=$(uname -s)
if [ "$os" = "Linux" ]; then
release=$(lsb_release -s -c)
os=$os-$release
apiv=$(get_apiv)
dir=$(linux_extension_dir "$apiv")
sudo mkdir -p "$dir" && sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
setup_dependencies "$extensions" "$release"
elif [ "$os" = "Darwin" ]; then
apiv=$(get_apiv)
dir=$(darwin_extension_dir "$apiv")
sudo mkdir -p "$dir" && sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
else
os="Windows"
dir='C:\\tools\\php\\ext'
if [ "$version" = "8.0" ] && [[ "$extensions" == *pcov* ]]; then
key="$key-pcov_20200410"
fi
fi
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
echo "::set-output name=dir::$dir"
echo "::set-output name=key::$key"

View File

@@ -1,18 +1,22 @@
lib32gcc1 lib32gcc1
lib32stdc++6 lib32stdc++6
lib32z1
libaccountsservice0 libaccountsservice0
libacl1 libacl1
libaio1 libaio1
libapparmor1 libapparmor1
libappindicator3-1
libapr1 libapr1
libaprutil1 libaprutil1
libaprutil1-dbd-sqlite3
libaprutil1-ldap
libapt-inst2.0 libapt-inst2.0
libapt-pkg5.0 libapt-pkg5.0
libarchive13 libarchive13
libargon2-0 libargon2-0
libargon2-1
libasan4 libasan4
libasan5 libasan5
libasan6
libasn1-8-heimdal libasn1-8-heimdal
libasound2 libasound2
libasound2-data libasound2-data
@@ -33,16 +37,19 @@ libavahi-common-data
libavahi-common3 libavahi-common3
libbind9-160 libbind9-160
libbinutils libbinutils
libbison-dev
libblas-dev
libblas3
libblkid1 libblkid1
libboost-context1.65.1
libboost-filesystem1.65.1
libboost-program-options1.65.1
libboost-system1.65.1
libboost-thread1.65.1
libbsd0 libbsd0
libburn4 libburn4
libbz2-1.0 libbz2-1.0
libbz2-dev libbz2-dev
libc++-dev
libc++-helpers
libc++1
libc++abi-dev
libc++abi1
libc-ares2 libc-ares2
libc-bin libc-bin
libc-client2007e libc-client2007e
@@ -63,20 +70,15 @@ libcgi-fast-perl
libcgi-pm-perl libcgi-pm-perl
libcgroup1 libcgroup1
libcilkrts5 libcilkrts5
libclang-common-6.0-dev
libclang-common-8-dev
libclang-common-9-dev libclang-common-9-dev
libclang-cpp9 libclang-cpp9
libclang1-6.0
libclang1-8
libclang1-9 libclang1-9
libcolord2 libcolord2
libcom-err2 libcom-err2
libcommon-sense-perl
libcroco3 libcroco3
libcryptsetup12 libcryptsetup12
libcups2 libcups2
libcupsfilters1
libcupsimage2
libcurl3-gnutls libcurl3-gnutls
libcurl4 libcurl4
libdata-dump-perl libdata-dump-perl
@@ -143,10 +145,13 @@ libfreetype6
libfreetype6-dev libfreetype6-dev
libfribidi0 libfribidi0
libfuse2 libfuse2
libgbm-dev
libgbm1
libgc1c2 libgc1c2
libgcc-10-dev
libgcc-7-dev libgcc-7-dev
libgcc-8-dev
libgcc-9-dev libgcc-9-dev
libgcc-s1
libgcc1 libgcc1
libgconf-2-4 libgconf-2-4
libgcrypt20 libgcrypt20
@@ -159,8 +164,10 @@ libgdk-pixbuf2.0-common
libgdk-pixbuf2.0-dev libgdk-pixbuf2.0-dev
libgeoip1 libgeoip1
libgflags2.2 libgflags2.2
libgfortran-8-dev libgfortran-10-dev
libgfortran-7-dev
libgfortran-9-dev libgfortran-9-dev
libgfortran4
libgfortran5 libgfortran5
libgif7 libgif7
libgirepository-1.0-1 libgirepository-1.0-1
@@ -185,11 +192,13 @@ libgnutls30
libgomp1 libgomp1
libgoogle-glog0v5 libgoogle-glog0v5
libgpg-error0 libgpg-error0
libgpgme11
libgpm2 libgpm2
libgraphite2-3 libgraphite2-3
libgraphite2-dev libgraphite2-dev
libgs9 libgsl-dev
libgs9-common libgsl23
libgslcblas0
libgssapi-krb5-2 libgssapi-krb5-2
libgssapi3-heimdal libgssapi3-heimdal
libgtk-3-0 libgtk-3-0
@@ -201,6 +210,7 @@ libharfbuzz-dev
libharfbuzz-gobject0 libharfbuzz-gobject0
libharfbuzz-icu0 libharfbuzz-icu0
libharfbuzz0b libharfbuzz0b
libhavege1
libhcrypto4-heimdal libhcrypto4-heimdal
libheimbase1-heimdal libheimbase1-heimdal
libheimntlm0-heimdal libheimntlm0-heimdal
@@ -228,10 +238,8 @@ libicu65
libiculx60 libiculx60
libidn11 libidn11
libidn2-0 libidn2-0
libijs-0.35
libilmbase-dev libilmbase-dev
libilmbase12 libilmbase12
libindicator3-7
libio-html-perl libio-html-perl
libio-socket-ssl-perl libio-socket-ssl-perl
libip4tc0 libip4tc0
@@ -251,7 +259,6 @@ libitm1
libjansson4 libjansson4
libjbig-dev libjbig-dev
libjbig0 libjbig0
libjbig2dec0
libjpeg-dev libjpeg-dev
libjpeg-turbo8 libjpeg-turbo8
libjpeg-turbo8-dev libjpeg-turbo8-dev
@@ -262,7 +269,8 @@ libjs-jquery
libjson-c3 libjson-c3
libjson-glib-1.0-0 libjson-glib-1.0-0
libjson-glib-1.0-common libjson-glib-1.0-common
libjsoncpp1 libjson-perl
libjson-xs-perl
libjte1 libjte1
libk5crypto3 libk5crypto3
libkeyutils1 libkeyutils1
@@ -272,16 +280,16 @@ libkrb5-26-heimdal
libkrb5-3 libkrb5-3
libkrb5support0 libkrb5support0
libksba8 libksba8
liblapack-dev
liblapack3
liblcms2-2 liblcms2-2
liblcms2-dev liblcms2-dev
libldap-2.4-2 libldap-2.4-2
libldap-common libldap-common
libldb1 libldb1
liblldb-6.0
liblldb-8
liblldb-9 liblldb-9
libllvm10
libllvm6.0 libllvm6.0
libllvm8
libllvm9 libllvm9
liblmdb0 liblmdb0
liblocale-gettext-perl liblocale-gettext-perl
@@ -290,8 +298,6 @@ liblqr-1-0-dev
liblsan0 liblsan0
libltdl-dev libltdl-dev
libltdl7 libltdl7
liblttng-ust-ctl4
liblttng-ust0
liblua5.2-0 liblua5.2-0
liblvm2app2.2 liblvm2app2.2
liblvm2cmd2.02 liblvm2cmd2.02
@@ -319,7 +325,9 @@ libmagickwand-6.q16-dev
libmagickwand-dev libmagickwand-dev
libmailtools-perl libmailtools-perl
libmcrypt4 libmcrypt4
libmediainfo0v5
libmemcached11 libmemcached11
libmms0
libmnl0 libmnl0
libmono-2.0-1 libmono-2.0-1
libmono-2.0-dev libmono-2.0-dev
@@ -474,17 +482,27 @@ libmspack0
libmysqlclient-dev libmysqlclient-dev
libmysqlclient20 libmysqlclient20
libncurses5 libncurses5
libncurses5-dev
libncursesw5 libncursesw5
libnet-dbus-perl libnet-dbus-perl
libnet-http-perl libnet-http-perl
libnet-smtp-ssl-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnet-ssleay-perl
libnet1
libnetfilter-conntrack3 libnetfilter-conntrack3
libnetplan0
libnettle6 libnettle6
libnewt0.52 libnewt0.52
libnfnetlink0 libnfnetlink0
libnghttp2-14 libnghttp2-14
libnginx-mod-http-geoip
libnginx-mod-http-image-filter
libnginx-mod-http-xslt-filter
libnginx-mod-mail
libnginx-mod-stream
libnih1 libnih1
libnl-3-200
libnl-genl-3-200
libnorm1 libnorm1
libnotify4 libnotify4
libnpth0 libnpth0
@@ -528,7 +546,6 @@ libpcre3
libpcre3-dev libpcre3-dev
libpcre32-3 libpcre32-3
libpcrecpp0v5 libpcrecpp0v5
libpcsclite1
libperl5.26 libperl5.26
libpfm4 libpfm4
libpgm-5.2-0 libpgm-5.2-0
@@ -545,6 +562,8 @@ libpopt0
libpq-dev libpq-dev
libpq5 libpq5
libprocps6 libprocps6
libprotobuf-c1
libprotobuf10
libproxy1v5 libproxy1v5
libpsl5 libpsl5
libpthread-stubs0-dev libpthread-stubs0-dev
@@ -564,6 +583,7 @@ libqdbm14
libquadmath0 libquadmath0
librabbitmq4 librabbitmq4
libre2-4 libre2-4
libreadline-dev
libreadline5 libreadline5
libreadline7 libreadline7
librecode0 librecode0
@@ -597,19 +617,20 @@ libslang2
libsm-dev libsm-dev
libsm6 libsm6
libsmartcols1 libsmartcols1
libsnappy1v5
libsnmp-base libsnmp-base
libsnmp30 libsnmp30
libsodium23 libsodium23
libsoup-gnome2.4-1 libsoup-gnome2.4-1
libsoup2.4-1 libsoup2.4-1
libsqlite3-0 libsqlite3-0
libsqlite3-dev
libss2 libss2
libssl-dev libssl-dev
libssl1.0.0 libssl1.0.0
libssl1.1 libssl1.1
libstartup-notification0 libstdc++-10-dev
libstdc++-7-dev libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev libstdc++-9-dev
libstdc++6 libstdc++6
libstemmer0d libstemmer0d
@@ -624,6 +645,7 @@ libtdb1
libtevent0 libtevent0
libtext-charwidth-perl libtext-charwidth-perl
libtext-iconv-perl libtext-iconv-perl
libtext-unidecode-perl
libtext-wrapi18n-perl libtext-wrapi18n-perl
libthai-data libthai-data
libthai0 libthai0
@@ -636,11 +658,13 @@ libtiffxx5
libtimedate-perl libtimedate-perl
libtinfo-dev libtinfo-dev
libtinfo5 libtinfo5
libtinyxml2-6
libtk8.6 libtk8.6
libtommath1 libtommath1
libtool libtool
libtry-tiny-perl libtry-tiny-perl
libtsan0 libtsan0
libtypes-serialiser-perl
libu2f-udev libu2f-udev
libubsan0 libubsan0
libubsan1 libubsan1
@@ -648,7 +672,6 @@ libucl1
libudev1 libudev1
libunistring2 libunistring2
libunwind8 libunwind8
liburcu6
liburi-perl liburi-perl
libusb-1.0-0 libusb-1.0-0
libutempter0 libutempter0
@@ -657,9 +680,11 @@ libuv1
libvorbis0a libvorbis0a
libvorbisfile3 libvorbisfile3
libvpx5 libvpx5
libvulkan1
libwayland-client0 libwayland-client0
libwayland-cursor0 libwayland-cursor0
libwayland-egl1 libwayland-egl1
libwayland-server0
libwbclient0 libwbclient0
libwebp6 libwebp6
libwind0-heimdal libwind0-heimdal
@@ -688,7 +713,6 @@ libxcb-shape0
libxcb-shm0 libxcb-shm0
libxcb-shm0-dev libxcb-shm0-dev
libxcb-sync1 libxcb-sync1
libxcb-util1
libxcb1 libxcb1
libxcb1-dev libxcb1-dev
libxcomposite1 libxcomposite1
@@ -707,7 +731,11 @@ libxinerama1
libxkbcommon0 libxkbcommon0
libxkbfile-dev libxkbfile-dev
libxkbfile1 libxkbfile1
libxml-libxml-perl
libxml-namespacesupport-perl
libxml-parser-perl libxml-parser-perl
libxml-sax-base-perl
libxml-sax-perl
libxml-twig-perl libxml-twig-perl
libxml-xpathengine-perl libxml-xpathengine-perl
libxml2 libxml2
@@ -731,7 +759,10 @@ libxtst6
libxv1 libxv1
libxxf86dga1 libxxf86dga1
libxxf86vm1 libxxf86vm1
libyajl2
libyaml-0-2 libyaml-0-2
libzen0v5
libzip4 libzip4
libzmq5 libzmq5
libzstd1 libzstd1
python3-oauthlib

View File

@@ -1,68 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mcrypt
memcached
mongo
mysql
mysqli
mysqlnd
openssl
pcntl
pcov
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug

View File

@@ -1,72 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcov
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,72 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcov
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,66 +0,0 @@
[PHP Modules]
amqp
apc
apcu
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
intl
json
libxml
mbstring
memcache
memcached
mhash
mongodb
msgpack
openssl
pcntl
pcov
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,63 +0,0 @@
[PHP Modules]
amqp
apcu
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
igbinary
intl
json
libxml
mbstring
memcache
memcached
mongodb
msgpack
openssl
pcntl
pcov
pcre
PDO
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
sockets
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
yaml
Zend OPcache
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
mcrypt
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,88 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,58 +0,0 @@
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Zend OPcache

1
src/lists/darwin-deps Normal file
View File

@@ -0,0 +1 @@
geos=geos

View File

@@ -0,0 +1,19 @@
amqp
expect
gnupg
grpc
imagick
imap
memcached
mongodb
pecl_http
phalcon3
phalcon4
psr
rdkafka
redis
ssh2
swoole
vips
yaml
zmq

View File

@@ -1,25 +1,27 @@
lib32gcc1 lib32gcc-s1
lib32stdc++6 lib32stdc++6
lib32z1
libaccountsservice0 libaccountsservice0
libacl1 libacl1
libaio1 libaio1
libapparmor-perl
libapparmor1 libapparmor1
libappindicator3-1 libappstream4
libapr1 libapr1
libaprutil1 libaprutil1
libapt-inst2.0 libaprutil1-dbd-sqlite3
libapt-pkg5.0 libaprutil1-ldap
libapt-pkg6.0
libarchive13 libarchive13
libargon2-0 libargon2-1
libasan2 libaria2-0
libasan4
libasan5 libasan5
libasan6
libasn1-8-heimdal libasn1-8-heimdal
libasound2 libasound2
libasound2-data libasound2-data
libaspell15 libaspell15
libasprintf0v5 libassuan0
libatasmart4
libatk-bridge2.0-0 libatk-bridge2.0-0
libatk1.0-0 libatk1.0-0
libatk1.0-data libatk1.0-data
@@ -33,14 +35,34 @@ libauthen-sasl-perl
libavahi-client3 libavahi-client3
libavahi-common-data libavahi-common-data
libavahi-common3 libavahi-common3
libbind9-140 libbinutils
libblas-dev
libblas3
libblkid-dev
libblkid1 libblkid1
libboost-filesystem1.58.0 libblockdev-crypto2
libboost-system1.58.0 libblockdev-fs2
libblockdev-loop2
libblockdev-part-err2
libblockdev-part2
libblockdev-swap2
libblockdev-utils2
libblockdev2
libboost-context1.71.0
libboost-filesystem1.71.0
libboost-program-options1.71.0
libboost-thread1.71.0
libbrotli1
libbsd0 libbsd0
libburn4 libburn4
libbz2-1.0 libbz2-1.0
libbz2-dev libbz2-dev
libc++-10-dev
libc++-dev
libc++1-10
libc++abi-10-dev
libc++abi-dev
libc++abi1-10
libc-ares2 libc-ares2
libc-bin libc-bin
libc-client2007e libc-client2007e
@@ -56,29 +78,30 @@ libcanberra0
libcap-ng0 libcap-ng0
libcap2 libcap2
libcap2-bin libcap2-bin
libcapnp-0.5.3 libcbor0.6
libcc1-0 libcc1-0
libcdt5
libcgi-fast-perl
libcgi-pm-perl
libcgraph6
libcgroup1 libcgroup1
libcilkrts5 libclang-common-10-dev
libclang-common-6.0-dev libclang-common-11-dev
libclang-common-8-dev libclang-common-12-dev
libclang-common-9-dev libclang-cpp10
libclang-cpp9 libclang-cpp11
libclang1-6.0 libclang-cpp12
libclang1-8 libclang1-10
libclang1-11
libclang1-12
libcolord2 libcolord2
libcomerr2 libcom-err2
libcroco3 libcommon-sense-perl
libcryptsetup4 libcrypt-dev
libcrypt1
libcryptsetup12
libctf-nobfd0
libctf0
libcups2 libcups2
libcupsfilters1
libcupsimage2
libcurl3
libcurl3-gnutls libcurl3-gnutls
libcurl4
libdata-dump-perl
libdatrie1 libdatrie1
libdb5.3 libdb5.3
libdbus-1-3 libdbus-1-3
@@ -92,8 +115,7 @@ libdevmapper1.02.1
libdjvulibre-dev libdjvulibre-dev
libdjvulibre-text libdjvulibre-text
libdjvulibre21 libdjvulibre21
libdns-export162 libdns-export1109
libdns162
libdpkg-perl libdpkg-perl
libdrm-amdgpu1 libdrm-amdgpu1
libdrm-common libdrm-common
@@ -101,174 +123,182 @@ libdrm-intel1
libdrm-nouveau2 libdrm-nouveau2
libdrm-radeon1 libdrm-radeon1
libdrm2 libdrm2
libdumbnet1
libdw1 libdw1
libdwarf1
libeatmydata1 libeatmydata1
libedit2 libedit2
libefivar0 libefiboot1
libegl1-mesa libefivar1
libelf1 libelf1
libenchant1c2a libenchant-2-2
libencode-locale-perl libencode-locale-perl
libepoxy0 libepoxy0
liberror-perl liberror-perl
libestr0 libestr0
libevent-2.0-5 libevent-2.1-7
libevent-core-2.0-5 libevent-core-2.1-7
libevent-pthreads-2.0-5 libevent-pthreads-2.1-7
libexif-dev libexif-dev
libexif12 libexif12
libexpat1 libexpat1
libexpat1-dev libexpat1-dev
libext2fs2
libfakeroot libfakeroot
libfastjson4
libfbclient2 libfbclient2
libfcgi-perl
libfdisk1 libfdisk1
libffi-dev libffi-dev
libffi6 libffi7
libfftw3-double3 libfftw3-double3
libfido2-1
libfile-basedir-perl libfile-basedir-perl
libfile-desktopentry-perl libfile-desktopentry-perl
libfile-listing-perl libfile-listing-perl
libfile-mimeinfo-perl libfile-mimeinfo-perl
libfl2
libfont-afm-perl libfont-afm-perl
libfontconfig1 libfontconfig1
libfontconfig1-dev libfontconfig1-dev
libfontenc1 libfontenc1
libfreetype-dev
libfreetype6 libfreetype6
libfreetype6-dev libfreetype6-dev
libfribidi0 libfribidi0
libfuse2 libfuse2
libfuse3-3
libfwupd2
libfwupdplugin1
libgbm-dev
libgbm1 libgbm1
libgcc-5-dev libgc1c2
libgcc-7-dev libgcab-1.0-0
libgcc-8-dev libgcc-10-dev
libgcc-9-dev libgcc-9-dev
libgcc1 libgcc-s1
libgconf-2-4 libgconf-2-4
libgcrypt20 libgcrypt20
libgd3 libgd3
libgdbm3 libgdbm-compat4
libgdbm6
libgdiplus libgdiplus
libgdk-pixbuf2.0-0 libgdk-pixbuf2.0-0
libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libgdk-pixbuf2.0-common
libgdk-pixbuf2.0-dev libgdk-pixbuf2.0-dev
libgeoip1 libgflags2.2
libgflags2v5 libgfortran-10-dev
libgfortran-8-dev
libgfortran-9-dev libgfortran-9-dev
libgfortran5 libgfortran5
libgif7 libgif7
libgirepository-1.0-1 libgirepository-1.0-1
libgl1
libgl1-mesa-dri libgl1-mesa-dri
libgl1-mesa-glx
libglade2-0
libglade2.0-cil
libglapi-mesa libglapi-mesa
libglib2.0-0 libglib2.0-0
libglib2.0-bin libglib2.0-bin
libglib2.0-cil
libglib2.0-data libglib2.0-data
libglib2.0-dev libglib2.0-dev
libglib2.0-dev-bin
libglvnd0
libglx-mesa0
libglx0
libgmp-dev libgmp-dev
libgmp10 libgmp10
libgmpxx4ldbl libgmpxx4ldbl
libgnutls-openssl27
libgnutls30 libgnutls30
libgomp1 libgomp1
libgoogle-glog0v5 libgoogle-glog0v5
libgpg-error0 libgpg-error0
libgpgme11
libgpm2 libgpm2
libgraphite2-3 libgraphite2-3
libgraphviz-dev libgsl-dev
libgs9 libgsl23
libgs9-common libgslcblas0
libgssapi-krb5-2 libgssapi-krb5-2
libgssapi3-heimdal libgssapi3-heimdal
libgssrpc4 libgstreamer1.0-0
libgtk-3-0 libgtk-3-0
libgtk-3-bin
libgtk-3-common libgtk-3-common
libgtk2.0-0 libgudev-1.0-0
libgtk2.0-cil libgusb2
libgtk2.0-common
libgvc6
libgvc6-plugins-gtk
libgvpr2
libharfbuzz0b libharfbuzz0b
libhavege1
libhcrypto4-heimdal libhcrypto4-heimdal
libheimbase1-heimdal libheimbase1-heimdal
libheimntlm0-heimdal libheimntlm0-heimdal
libhogweed4 libhogweed5
libhtml-form-perl libhtml-form-perl
libhtml-format-perl libhtml-format-perl
libhtml-parser-perl libhtml-parser-perl
libhtml-tagset-perl libhtml-tagset-perl
libhtml-template-perl
libhtml-tree-perl libhtml-tree-perl
libhttp-cookies-perl libhttp-cookies-perl
libhttp-daemon-perl libhttp-daemon-perl
libhttp-date-perl libhttp-date-perl
libhttp-message-perl libhttp-message-perl
libhttp-negotiate-perl libhttp-negotiate-perl
libhunspell-1.3-0 libhunspell-1.7-0
libhx509-5-heimdal libhx509-5-heimdal
libice-dev libice-dev
libice6 libice6
libicu-dev libicu-dev
libicu55 libicu66
libicu65
libidn11 libidn11
libijs-0.35 libidn2-0
libilmbase-dev libilmbase-dev
libilmbase12 libilmbase24
libindicator3-7
libio-html-perl libio-html-perl
libio-socket-ssl-perl libio-socket-ssl-perl
libio-stringy-perl
libip4tc2
libip6tc2
libipc-system-simple-perl libipc-system-simple-perl
libisc-export160 libisc-export1105
libisc160 libisl22
libisccc140 libisns0
libisccfg140
libisl15
libisoburn1 libisoburn1
libisofs6 libisofs6
libitm1 libitm1
libjasper-dev libjansson4
libjasper1
libjbig-dev libjbig-dev
libjbig0 libjbig0
libjbig2dec0 libjcat1
libjemalloc2
libjpeg-dev libjpeg-dev
libjpeg-turbo8 libjpeg-turbo8
libjpeg-turbo8-dev libjpeg-turbo8-dev
libjpeg8 libjpeg8
libjpeg8-dev libjpeg8-dev
libjq1
libjs-jquery libjs-jquery
libjson-c2 libjs-xmlextras
libjson-c4
libjson-glib-1.0-0 libjson-glib-1.0-0
libjson-glib-1.0-common libjson-glib-1.0-common
libjsoncpp1 libjson-perl
libjte1 libjson-xs-perl
libjte2
libk5crypto3 libk5crypto3
libkadm5clnt-mit9
libkadm5srv-mit9
libkdb5-8
libkeyutils1 libkeyutils1
libklibc libklibc
libkmod2 libkmod2
libkrb5-26-heimdal libkrb5-26-heimdal
libkrb5-3 libkrb5-3
libkrb5support0 libkrb5support0
libksba8
liblapack-dev
liblapack3
liblcms2-2 liblcms2-2
liblcms2-dev liblcms2-dev
libldap-2.4-2 libldap-2.4-2
libldb1 libldap-common
liblldb-6.0 liblldb-10
liblldb-8 liblldb-11
liblldb-9 liblldb-12
libllvm6.0 libllvm10
libllvm8 libllvm11
libllvm12
libllvm9 libllvm9
liblmdb0 liblmdb0
liblocale-gettext-perl liblocale-gettext-perl
@@ -277,38 +307,34 @@ liblqr-1-0-dev
liblsan0 liblsan0
libltdl-dev libltdl-dev
libltdl7 libltdl7
liblttng-ust-ctl2
liblttng-ust0
liblua5.2-0 liblua5.2-0
liblvm2app2.2 liblvm2cmd2.03
liblvm2cmd2.02
liblwp-mediatypes-perl liblwp-mediatypes-perl
liblwp-protocol-https-perl liblwp-protocol-https-perl
liblwres141
liblxc1
liblz4-1 liblz4-1
liblzma-dev liblzma-dev
liblzma5 liblzma5
liblzo2-2 liblzo2-2
libmagic-dev libmagic-dev
libmagic-mgc
libmagic1 libmagic1
libmagickcore-6-arch-config libmagickcore-6-arch-config
libmagickcore-6-headers libmagickcore-6-headers
libmagickcore-6.q16-2 libmagickcore-6.q16-6
libmagickcore-6.q16-2-extra libmagickcore-6.q16-6-extra
libmagickcore-6.q16-dev libmagickcore-6.q16-dev
libmagickcore-dev libmagickcore-dev
libmagickwand-6-headers libmagickwand-6-headers
libmagickwand-6.q16-2 libmagickwand-6.q16-6
libmagickwand-6.q16-dev libmagickwand-6.q16-dev
libmagickwand-dev libmagickwand-dev
libmailtools-perl libmailtools-perl
libmaxminddb0
libmcrypt4 libmcrypt4
libmecab2
libmediainfo0v5
libmemcached11 libmemcached11
libmirclient9 libmms0
libmircommon7
libmircore1
libmirprotobuf3
libmnl0 libmnl0
libmono-2.0-1 libmono-2.0-1
libmono-2.0-dev libmono-2.0-dev
@@ -454,43 +480,55 @@ libmono-xbuild-tasks4.0-cil
libmonoboehm-2.0-1 libmonoboehm-2.0-1
libmonosgen-2.0-1 libmonosgen-2.0-1
libmonosgen-2.0-dev libmonosgen-2.0-dev
libmount-dev
libmount1 libmount1
libmpc3 libmpc3
libmpdec2 libmpdec2
libmpfr4 libmpfr6
libmpx0
libmpx2
libmspack0 libmspack0
libmysqlclient-dev libmysqlclient-dev
libmysqlclient20 libmysqlclient21
libncurses-dev
libncurses5 libncurses5
libncursesw5 libncurses6
libncursesw6
libnet-dbus-perl libnet-dbus-perl
libnet-http-perl libnet-http-perl
libnet-smtp-ssl-perl libnet-smtp-ssl-perl
libnet-ssleay-perl libnet-ssleay-perl
libnet1
libnetfilter-conntrack3 libnetfilter-conntrack3
libnettle6 libnetplan0
libnettle7
libnewt0.52 libnewt0.52
libnfnetlink0 libnfnetlink0
libnih-dbus1 libnftnl11
libnih1 libnghttp2-14
libnginx-mod-http-image-filter
libnginx-mod-http-xslt-filter
libnginx-mod-mail
libnginx-mod-stream
libnl-3-200
libnorm1 libnorm1
libnotify4 libnotify4
libnpth0
libnspr4 libnspr4
libnss-systemd
libnss3 libnss3
libnss3-nssdb libntfs-3g883
libnuma1 libnuma1
libobjc-5-dev libobjc-9-dev
libobjc4 libobjc4
libodbc1 libodbc1
libogg0 libogg0
libomp-9-dev libomp-11-dev
libomp5-9 libomp5-11
libonig2 libonig5
libopenexr-dev libopenexr-dev
libopenexr22 libopenexr24
libp11-kit0 libp11-kit0
libpackagekit-glib2-18
libpam-cap
libpam-modules libpam-modules
libpam-modules-bin libpam-modules-bin
libpam-runtime libpam-runtime
@@ -501,8 +539,8 @@ libpangocairo-1.0-0
libpangoft2-1.0-0 libpangoft2-1.0-0
libpaper-utils libpaper-utils
libpaper1 libpaper1
libparted-fs-resize0
libparted2 libparted2
libpathplan4
libpcap0.8 libpcap0.8
libpci3 libpci3
libpciaccess0 libpciaccess0
@@ -516,56 +554,53 @@ libpcre3
libpcre3-dev libpcre3-dev
libpcre32-3 libpcre32-3
libpcrecpp0v5 libpcrecpp0v5
libpcsclite1 libperl5.30
libperl5.22
libpfm4 libpfm4
libpgm-5.2-0 libpgm-5.2-0
libpipeline1 libpipeline1
libpixman-1-0 libpixman-1-0
libpixman-1-dev libpixman-1-dev
libplymouth4 libplymouth5
libpng12-0 libpng-dev
libpng12-dev libpng16-16
libpolkit-agent-1-0 libpolkit-agent-1-0
libpolkit-backend-1-0
libpolkit-gobject-1-0 libpolkit-gobject-1-0
libpopt0 libpopt0
libpq-dev libpq-dev
libpq5 libpq5
libprocps4 libprocps8
libprotobuf-lite9v5 libprotobuf-c1
libprotobuf17
libproxy1v5 libproxy1v5
libpsl5
libpthread-stubs0-dev libpthread-stubs0-dev
libpython-dev libpython2-stdlib
libpython-stdlib
libpython2.7
libpython2.7-dev
libpython2.7-minimal libpython2.7-minimal
libpython2.7-stdlib libpython2.7-stdlib
libpython3-dev libpython3-dev
libpython3-stdlib libpython3-stdlib
libpython3.5 libpython3.8
libpython3.5-dev libpython3.8-dev
libpython3.5-minimal libpython3.8-minimal
libpython3.5-stdlib libpython3.8-stdlib
libqdbm14 libqdbm14
libquadmath0 libquadmath0
librabbitmq4 librabbitmq4
libre2-1v5 libre2-5
libreadline-dev
libreadline5 libreadline5
libreadline6 libreadline8
librecode0
librest-0.7-0 librest-0.7-0
libroken18-heimdal libroken18-heimdal
librpm3 librpm8
librpmbuild3 librpmbuild8
librpmio3 librpmio8
librpmsign3 librpmsign8
librsvg2-2 librsvg2-2
librsvg2-common librsvg2-common
librsvg2-dev librsvg2-dev
librtmp1 librtmp1
libruby2.3 libruby2.7
libsasl2-2 libsasl2-2
libsasl2-modules libsasl2-modules
libsasl2-modules-db libsasl2-modules-db
@@ -575,32 +610,35 @@ libsecret-1-0
libsecret-1-dev libsecret-1-dev
libsecret-common libsecret-common
libselinux1 libselinux1
libselinux1-dev
libsemanage-common libsemanage-common
libsemanage1 libsemanage1
libsensors4 libsensors-config
libsensors5
libsepol1 libsepol1
libsepol1-dev
libserf-1-1 libserf-1-1
libsgutils2-2
libsigsegv2 libsigsegv2
libslang2 libslang2
libsm-dev libsm-dev
libsm6 libsm6
libsmartcols1 libsmartcols1
libsmbios-c2
libsnappy1v5
libsnmp-base libsnmp-base
libsnmp30 libsnmp35
libsodium23 libsodium23
libsoup-gnome2.4-1 libsoup-gnome2.4-1
libsoup2.4-1 libsoup2.4-1
libsqlite3-0 libsqlite3-0
libsqlite3-dev
libss2 libss2
libssh-4
libssh2-1 libssh2-1
libssl-dev libssl-dev
libssl-doc
libssl1.0.0
libssl1.1 libssl1.1
libstartup-notification0 libstdc++-10-dev
libstdc++-5-dev
libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev libstdc++-9-dev
libstdc++6 libstdc++6
libstemmer0d libstemmer0d
@@ -611,45 +649,58 @@ libtalloc2
libtasn1-6 libtasn1-6
libtbb2 libtbb2
libtcl8.6 libtcl8.6
libtcltk-ruby
libtdb1 libtdb1
libtevent0 libtevent0
libtext-charwidth-perl libtext-charwidth-perl
libtext-iconv-perl libtext-iconv-perl
libtext-unidecode-perl
libtext-wrapi18n-perl libtext-wrapi18n-perl
libthai-data libthai-data
libthai0 libthai0
libtidy5deb1 libtidy5deb1
libtie-ixhash-perl libtie-ixhash-perl
libtiff-dev
libtiff5 libtiff5
libtiff5-dev
libtiffxx5 libtiffxx5
libtimedate-perl libtimedate-perl
libtinfo-dev libtinfo-dev
libtinfo5 libtinfo5
libtinfo6
libtinyxml2-6a
libtk8.6 libtk8.6
libtommath1
libtool libtool
libtry-tiny-perl
libtsan0 libtsan0
libubsan0 libtss2-esys0
libtypes-serialiser-perl
libu2f-udev
libubsan1 libubsan1
libuchardet0
libucl1 libucl1
libudev1 libudev1
libudisks2-0
libunistring2
libunwind8 libunwind8
liburcu4 liburcu6
liburi-perl liburi-perl
libusb-0.1-4
libusb-1.0-0 libusb-1.0-0
libustr-1.0-1
libutempter0 libutempter0
libutf8proc2
libuuid1 libuuid1
libuv1
libvolume-key1
libvorbis0a libvorbis0a
libvorbisfile3 libvorbisfile3
libvpx3 libvpx6
libvulkan1
libwayland-client0 libwayland-client0
libwayland-cursor0 libwayland-cursor0
libwayland-egl1-mesa libwayland-egl1
libwayland-server0 libwayland-server0
libwbclient0 libwbclient0
libwebp6
libwebpmux3
libwind0-heimdal libwind0-heimdal
libwmf-dev libwmf-dev
libwmf0.2-7 libwmf0.2-7
@@ -657,7 +708,7 @@ libwrap0
libwww-perl libwww-perl
libwww-robotrules-perl libwww-robotrules-perl
libwxbase3.0-0v5 libwxbase3.0-0v5
libwxgtk3.0-0v5 libwxgtk3.0-gtk3-0v5
libx11-6 libx11-6
libx11-data libx11-data
libx11-dev libx11-dev
@@ -676,7 +727,6 @@ libxcb-shape0
libxcb-shm0 libxcb-shm0
libxcb-shm0-dev libxcb-shm0-dev
libxcb-sync1 libxcb-sync1
libxcb-util1
libxcb-xfixes0 libxcb-xfixes0
libxcb1 libxcb1
libxcb1-dev libxcb1-dev
@@ -685,11 +735,10 @@ libxcursor1
libxdamage1 libxdamage1
libxdmcp-dev libxdmcp-dev
libxdmcp6 libxdmcp6
libxdot4
libxext-dev libxext-dev
libxext6 libxext6
libxfixes3 libxfixes3
libxfont1 libxfont2
libxft-dev libxft-dev
libxft2 libxft2
libxi6 libxi6
@@ -697,11 +746,16 @@ libxinerama1
libxkbcommon0 libxkbcommon0
libxkbfile-dev libxkbfile-dev
libxkbfile1 libxkbfile1
libxml-libxml-perl
libxml-namespacesupport-perl
libxml-parser-perl libxml-parser-perl
libxml-sax-base-perl
libxml-sax-perl
libxml-twig-perl libxml-twig-perl
libxml-xpathengine-perl libxml-xpathengine-perl
libxml2 libxml2
libxml2-dev libxml2-dev
libxmlb1
libxmlrpc-epi0 libxmlrpc-epi0
libxmlsec1 libxmlsec1
libxmlsec1-openssl libxmlsec1-openssl
@@ -716,13 +770,19 @@ libxslt1.1
libxss1 libxss1
libxt-dev libxt-dev
libxt6 libxt6
libxtables11 libxtables12
libxtst6 libxtst6
libxv1 libxv1
libxxf86dga1 libxxf86dga1
libxxf86vm1 libxxf86vm1
libyajl2
libyaml-0-2 libyaml-0-2
libz3-4
libz3-dev libz3-dev
libzen0v5
libzip4 libzip4
libzmq5 libzmq5
libzstd1 libzstd1
python3-launchpadlib
python3-oauthlib
python3-wadllib

4
src/lists/linux-deps Normal file
View File

@@ -0,0 +1,4 @@
geos=libgeos-dev
pdo_firebird=firebird-dev
oci8=libaio-dev
pdo_oci=libaio-dev

View File

@@ -1,67 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mcrypt
memcached
mongo
mysql
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug

View File

@@ -1,71 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,71 +0,0 @@
[PHP Modules]
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
imagick
intl
json
libxml
mbstring
mcrypt
memcached
mhash
mysql
mysqli
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,95 +0,0 @@
[PHP Modules]
amqp
apc
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
mcrypt
memcache
memcached
mhash
mongodb
msgpack
mssql
mysql
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
mcrypt
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
mcrypt
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,90 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
interbase
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
recode
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
wddx
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,88 +0,0 @@
[PHP Modules]
amqp
apcu
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
enchant
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
igbinary
imap
intl
json
ldap
libxml
mbstring
memcache
memcached
mongodb
msgpack
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
PDO_Firebird
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
pspell
readline
redis
Reflection
session
shmop
SimpleXML
snmp
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml
Zend OPcache
zip
zlib
zmq
phalcon3
phalcon4
blackfire
[Zend Modules]
Xdebug
Zend OPcache

View File

@@ -1,58 +0,0 @@
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
hash
iconv
intl
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib
phalcon3
phalcon4
blackfire
[Zend Modules]
Zend OPcache

124
src/scripts/cache.sh Normal file
View File

@@ -0,0 +1,124 @@
step_log() {
message=$1
printf "\n\033[90;1m==> \033[0m\033[37;1m%s\033[0m\n" "$message"
}
add_log() {
mark=$1
shift
subjects=("$@")
for subject in "${subjects[@]}"; do
if [ "$mark" = "$tick" ]; then
printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Added $subject"
else
printf "\033[31;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "Failed to setup $subject"
fi
done
}
get_api_version_from_repo() {
php_header="https://raw.githubusercontent.com/php/php-src/PHP-$version/main/php.h"
status_code=$(curl -sSL -o /tmp/php.h -w "%{http_code}" "$php_header")
if [ "$status_code" != "200" ]; then
curl -sSL --retry 5 "${php_header/PHP-$version/master}" | grep "PHP_API_VERSION" | cut -d' ' -f 3
else
grep "PHP_API_VERSION" /tmp/php.h | cut -d' ' -f 3
fi
}
get_api_version() {
case $version in
5.3) echo "20090626" ;;
5.4) echo "20100525" ;;
5.5) echo "20121212" ;;
5.6) echo "20131226" ;;
7.0) echo "20151012" ;;
7.1) echo "20160303" ;;
7.2) echo "20170718" ;;
7.3) echo "20180731" ;;
7.4) echo "20190902" ;;
8.0) echo "20200930" ;;
8.1) echo "20210902" ;;
*) get_api_version_from_repo ;;
esac
}
fix_ownership() {
dir=$1
sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
}
add_config() {
dependent_extension=$1
dependency_extension=$2
echo "$dependency_extension" | sudo tee "${ext_config_directory:?}/$dependent_extension/$dependency_extension" >/dev/null 2>&1
}
extension_dir_darwin() {
api_version=$1
if [[ "${version:?}" =~ ${old_versions:?} ]]; then
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$api_version"
else
if [[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" == "1" ]]; then
echo "/opt/homebrew/lib/php/pecl/$api_version"
else
echo "/usr/local/lib/php/pecl/$api_version"
fi
fi
}
extension_dir_linux() {
api_version=$1
if [[ "${version:?}" =~ ${old_versions:?} ]]; then
echo "/usr/local/php/$version/lib/php/extensions/no-debug-non-zts-$api_version"
else
echo "/usr/lib/php/$api_version"
fi
}
data() {
old_versions="5.[3-5]"
date='20211217'
if [ "$os" = "Linux" ]; then
. /etc/lsb-release
os=$os-$DISTRIB_CODENAME
api_version=$(get_api_version)
dir=$(extension_dir_linux "$api_version")
sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
elif [ "$os" = "Darwin" ]; then
api_version=$(get_api_version)
dir=$(extension_dir_darwin "$api_version")
sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
else
os="Windows"
dir='C:\\tools\\php\\ext'
fi
job="${GITHUB_REPOSITORY}-${GITHUB_WORKFLOW}-${GITHUB_JOB}"
key="$(echo -n "$extensions-$key-$job" | openssl dgst -sha256 | cut -d ' ' -f 2)"
key="$os"-"$version"-"$key"-"$date"
echo "$dir" > "${RUNNER_TEMP:?}"/dir
echo "$key" > "${RUNNER_TEMP:?}"/key
echo "::set-output name=dir::$dir"
echo "::set-output name=key::$key"
}
dependencies() {
if [ "$os" = "Linux" ] || [ "$os" = "Darwin" ]; then
export tick="✓"
export cross="✗"
export ext_config_directory="/tmp/extcache"
export deps_cache_directory="${RUNNER_TOOL_CACHE}"/deps
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)
# shellcheck disable=SC1090
. "$script_dir/$(echo "$os" | tr '[:upper:]' '[:lower:]').sh"
setup_dependencies "$extensions" "$(cat "${RUNNER_TEMP:?}"/dir)"
fi
}
run=$1
extensions=$2
version=$3
key=$4
os=$(uname -s)
$run

189
src/scripts/darwin.sh Normal file
View File

@@ -0,0 +1,189 @@
fetch_brew_tap() {
tap=$1
tap_user=$(dirname "$tap")
tap_name=$(basename "$tap")
mkdir -p "$tap_dir/$tap_user"
curl -sL "https://github.com/$tap/archive/master.tar.gz" | sudo tar -xzf - -C "$tap_dir/$tap_user"
if [ -d "$tap_dir/$tap_user/$tap_name-master" ]; then
sudo mv "$tap_dir/$tap_user/$tap_name-master" "$tap_dir/$tap_user/$tap_name"
fi
}
add_brew_tap() {
tap=$1
if ! [ -d "$tap_dir/$tap" ]; then
if [ "${ImageOS:=}-${ImageVersion:=}" = "-" ]; then
brew tap --shallow "$tap" >/dev/null 2>&1
else
fetch_brew_tap "$tap" >/dev/null 2>&1
if ! [ -d "$tap_dir/$tap" ]; then
brew tap --shallow "$tap" >/dev/null 2>&1
fi
fi
fi
}
get_dependencies() {
extension=$1
list_deps="$(grep "$extension" "${script_dir:?}"/../lists/darwin-deps | cut -d '=' -f 2)"
formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb"
if [ -e "$formula_file" ]; then
formula_deps="$(grep "depends_on" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
fi
deps=()
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
[[ -n "${formula_deps[*]}" ]] && deps+=("${formula_deps[@]}")
echo "${deps[@]}"
}
filter_extensions() {
extensions_array=("$@")
filtered_extensions=()
for ext in "${extensions_array[@]}"; do
if grep -i -q -w "$ext" "${script_dir:?}"/../lists/darwin-extensions ||
grep -q "$ext=" "${script_dir:?}"/../lists/darwin-deps; then
filtered_extensions+=("$ext")
fi
done
echo "${filtered_extensions[@]}"
}
setup_extensions_helper() {
dependent_extension=$1
dependency_extension=$2
extension_dir=$3
cached_extension="${deps_cache_directory:?}/$dependency_extension.so"
if ! [ -e "$cached_extension" ]; then
brew install "$dependency_extension@$version"
sudo find "$brew_cellar/$dependency_extension@${version:?}" -name "$dependency_extension.so" -exec cp {} "$cached_extension" \;
else
echo "Found $dependency_extension extension in cache"
sudo cp "$cached_extension" "$extension_dir/"
fi
add_config "$dependent_extension" "$dependency_extension"
}
setup_extensions() {
dependent_extension=$1
extension_dir=$2
shift 2
dependency_extensions_array=("$@")
sudo mkdir -p "$cache_directory"/"$extension"
echo "::group::Logs to set up extensions required for $extension"
for dependency_extension in "${dependency_extensions_array[@]}"; do
setup_extensions_helper "$dependent_extension" "$dependency_extension" "$extension_dir"
done
echo "::endgroup::"
add_log "${tick:?}" "${dependency_extensions_array[@]}"
}
add_library_helper() {
dep_name=$1
cache_dir=$2
echo "$dep_name" | sudo tee -a "$cache_dir"/list >/dev/null 2>&1
(
cd "$brew_cellar" || exit 1
if command -v gtar >/dev/null; then
sudo gtar -I "zstd -T0" -cf "$cache_dir"/"$dep_name".tar.zst "$dep_name"
else
sudo tar -cf - "$dep_name" | zstd -T0 > "$cache_dir"/"$dep_name".tar.zst
fi
)
}
add_library() {
lib=$1
cache_dir=$2
brew list "$lib" &>/dev/null || brew install "$lib"
IFS=' ' read -r -a deps_array <<<"$(brew deps "$lib" | tr '\n' ' ')"
to_wait=()
for dep_name in "$lib" "${deps_array[@]}"; do
add_library_helper "$dep_name" "$cache_dir" &
to_wait+=($!)
done
wait "${to_wait[@]}"
}
restore_library_helper() {
dep_name=$1
cache_dir=$2
if ! [ -d "$brew_cellar/$dep_name" ]; then
if command -v gtar >/dev/null; then
sudo gtar -I "zstd -d" -xf "$cache_dir"/"$dep_name".tar.zst -C "$brew_cellar"
else
sudo zstd -dq "$cache_dir"/"$dep_name".tar.zst && sudo tar -xf "$cache_dir"/"$dep_name".tar -C "$brew_cellar"
fi
fi
if ! [ -d "$brew_prefix/opt/$dep_name" ]; then
brew link --force --overwrite "$dep_name" 2>/dev/null || true
fi
}
restore_library() {
cache_dir=$1
to_wait=()
while read -r dep_name; do
restore_library_helper "$dep_name" "$cache_dir" &
to_wait+=($!)
done <"$cache_dir"/list
wait "${to_wait[@]}"
}
setup_libraries() {
extension=$1
shift 1
libraries_array=("$@")
ext_deps_dir="$deps_cache_directory/$extension"
sudo cp -a "$tap_dir"/"$ext_tap"/.github/deps/"$extension"/*.rb "$tap_dir"/"$core_tap"/Formula/ 2>/dev/null || true
sudo mkdir -p "$ext_deps_dir"
echo "::group::Logs to set up libraries required for $extension"
for lib in "${libraries_array[@]}"; do
if ! [ -e "$ext_deps_dir"/list ]; then
add_library "$lib" "$ext_deps_dir"
else
restore_library "$ext_deps_dir"
fi
done
echo "::endgroup::"
add_log "$tick" "${libraries_array[@]}"
}
setup_dependencies() {
extensions=$1
extension_dir=$2
cache_directory=/tmp/extcache
[[ -z "${extensions// /}" ]] && return
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ /g")"
IFS=' ' read -r -a extensions_array <<<"$(filter_extensions "${extensions_array[@]}")"
if [[ -n "${extensions_array[*]// /}" ]]; then
add_brew_tap "$php_tap"
add_brew_tap "$ext_tap"
# Remove once updated on the images
curl -o "$tap_dir"/"$core_tap"/Formula/ca-certificates.rb -sL https://raw.githubusercontent.com/"$core_tap"/master/Formula/ca-certificates.rb
for extension in "${extensions_array[@]}"; do
IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")"
IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')"
IFS=' ' read -r -a libraries_array <<<"${dependency_array[@]//shivammathur*/}"
if [[ -n "${libraries_array[*]// /}" ]]; then
step_log "Setup libraries for $extension"
setup_libraries "$extension" "${libraries_array[@]}"
fi
if [[ -n "${extension_array[*]// /}" ]] && [ "${skip_dependency_extensions:=}" != "true" ]; then
step_log "Setup extensions for $extension"
setup_extensions "$extension" "$extension_dir" "${extension_array[@]}"
fi
done
fi
}
export HOMEBREW_CHANGE_ARCH_TO_ARM=1
export HOMEBREW_NO_INSTALL_CLEANUP=1
export HOMEBREW_NO_AUTO_UPDATE=1
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
brew_prefix="$(brew --prefix)"
brew_cellar="$brew_prefix/Cellar"
tap_dir="$(brew --repository)"/Library/Taps
core_tap=homebrew/homebrew-core
php_tap=shivammathur/homebrew-php
ext_tap=shivammathur/homebrew-extensions

117
src/scripts/linux.sh Normal file
View File

@@ -0,0 +1,117 @@
link_apt_fast() {
if ! command -v apt-fast >/dev/null; then
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
fi
}
fetch_package() {
if ! [ -e /tmp/Packages ]; then
. /etc/os-release
deb_build_arch=$(dpkg-architecture -q DEB_BUILD_ARCH)
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$VERSION_CODENAME/main/binary-$deb_build_arch/Packages.gz"
gzip -df /tmp/Packages.gz
fi
}
get_dependencies() {
package=$1
prefix=$2
list_deps="$(grep "${package#*-}" "${script_dir:?}"/../lists/linux-deps | cut -d '=' -f 2 | grep -Eo "$prefix.*")"
package_deps="$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Depends.*" | tr ',' '\n' | awk -v ORS='' '/^\s'"$prefix"'/{print$0}' | sed -e 's/([^()]*)//g' | sort | uniq | xargs echo -n)"
deps=()
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
[[ -n "${package_deps[*]}" ]] && deps+=("${package_deps[@]}")
echo "${deps[@]}"
}
get_package_link() {
package=$1
trunk="http://ppa.launchpad.net/ondrej/php/ubuntu"
file=$(sed -e '/Package:\s'"$package$"'/,/^\s*$/!d' /tmp/Packages | grep -Eo "^Filename.*" | cut -d' ' -f 2 | tr -d '\r')
echo "$trunk/$file"
}
setup_extensions_helper() {
dependency_extension=$1
extension_dir=$2
cached_extension="${deps_cache_directory:?}/$dependency_extension.so"
if ! [ -e "$extension_dir/$dependency_extension.so" ]; then
if ! [ -e "$cached_extension" ]; then
extension_package_link="$(get_package_link "php${version:?}-$dependency_extension")"
sudo curl -H "User-Agent: Debian APT-HTTP/GHA(ce)" -o "/tmp/$dependency_extension".deb -sL "$extension_package_link"
sudo dpkg-deb -x "/tmp/$dependency_extension".deb /
sudo cp "$extension_dir/$dependency_extension.so" "$cached_extension"
fix_ownership "$extension_dir"
else
sudo cp "$cached_extension" "$extension_dir/"
fi
fi
}
setup_extensions() {
extension_dir=$1
IFS=' ' read -r -a dependency_extension_array <<<"$(echo "$2" | xargs -n1 | sort | uniq | xargs)"
to_wait=()
for dependency_extension in "${dependency_extension_array[@]}"; do
setup_extensions_helper "$dependency_extension" "$extension_dir" &
to_wait+=($!)
done
wait "${to_wait[@]}"
add_log "${tick:?}" "${dependency_extension_array[@]}"
}
filter_libraries() {
libraries="$(echo "$1" | xargs -n1 | sort | uniq | xargs)"
for library in $libraries; do
if grep -i -q -w "$library" "${script_dir:?}"/../lists/"$VERSION_CODENAME"-libs; then
libraries=${libraries//$library/}
fi
done
echo "$libraries"
}
setup_libraries() {
libraries=$1
if [[ -n "${libraries// /}" ]]; then
libraries=$(filter_libraries "$libraries")
if [[ -n "${libraries// /}" ]]; then
step_log "Setup libraries"
IFS=' ' read -r -a libraries_array <<<"$libraries"
link_apt_fast
echo "::group::Logs to set up required libraries"
sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}"
ec="$?"
echo "::endgroup::"
if [ "$ec" -eq "0" ]; then mark="${tick:?}"; else mark="${cross:?}"; fi
add_log "$mark" "${libraries_array[@]}"
fi
fi
}
setup_dependencies() {
extensions=$1
extension_dir=$2
[[ -z "${extensions// }" ]] && return
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
. /etc/os-release
sudo rm -rf "${ext_config_directory:?}" || true
libraries=""
extension_packages=""
for extension_package in "${extensions_array[@]}"; do
fetch_package
libraries="$libraries $(get_dependencies "$extension_package" "lib")"
IFS=' ' read -r -a dependency_extension_packages_array <<<"$(get_dependencies "$extension_package" "php$version-")"
extension_packages="$extension_packages ${dependency_extension_packages_array[*]}"
extension_packages="${extension_packages//php$version-common/}"
for dependency_extension in "${dependency_extension_packages_array[@]}"; do
mkdir -p "$ext_config_directory/${extension_package#*-}"
add_config "${extension_package#*-}" "$dependency_extension"
done
done
if [[ -n "${libraries// /}" ]]; then
setup_libraries "$libraries"
fi
if [[ -n "${extension_packages// /}" ]] && [ "${skip_dependency_extensions:=}" != "true" ]; then
setup_extensions "$extension_dir" "${extension_packages//php$version-/}"
fi
}

View File

@@ -1,24 +1,15 @@
import * as fs from 'fs'; import * as fs from 'fs';
import * as core from '@actions/core'; import * as path from 'path';
import * as spu from 'setup-php/lib/utils';
/** /**
* Function to get inputs from both with and env annotations. * Function to get outputs
*
* @param name
* @param mandatory
*/ */
export async function getInput( export async function getOutput(output: string): Promise<string> {
name: string, return fs.readFileSync(
mandatory: boolean path.join(await spu.readEnv('RUNNER_TEMP'), output),
): Promise<string> { 'utf8'
const input = process.env[name]; );
switch (input) {
case '':
case undefined:
return core.getInput(name, {required: mandatory});
default:
return input;
}
} }
/** /**
@@ -27,10 +18,26 @@ export async function getInput(
* @param extension_csv * @param extension_csv
*/ */
export async function filterExtensions(extension_csv: string): Promise<string> { export async function filterExtensions(extension_csv: string): Promise<string> {
return extension_csv return JSON.stringify(
.split(',') extension_csv
.filter(extension => { .split(',')
return extension.trim()[0] != ':'; .filter(extension => {
}) return extension.trim()[0] != ':';
.join(','); })
.join(',')
);
}
/**
* Function to get script call
*
* @param fn
* @param args
*/
export async function scriptCall(
fn: string,
...args: string[]
): Promise<string> {
const script: string = path.join(__dirname, '../src/scripts/cache.sh');
return ['bash', script, fn, ...args].join(' ');
} }

View File

@@ -1,63 +1,19 @@
{ {
"compilerOptions": { "compilerOptions": {
/* Basic Options */ "declaration": true,
// "incremental": true, /* Enable incremental compilation */ "esModuleInterop": true,
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "lib": [
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "ESNext"
// "allowJs": true, /* Allow javascript files to be compiled. */ ],
// "checkJs": true, /* Report errors in .js files. */ "module": "commonjs",
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ "moduleResolution": "node",
// "declaration": true, /* Generates corresponding '.d.ts' file. */ "noImplicitAny": true,
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */ "outDir": "./lib",
// "sourceMap": true, /* Generates corresponding '.map' file. */ "removeComments": true,
// "outFile": "./", /* Concatenate and emit output to single file. */ "rootDir": "./src",
"outDir": "./lib", /* Redirect output structure to the directory. */ "sourceMap": true,
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */ "strict": true,
// "composite": true, /* Enable project compilation */ "target": "ESNext"
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
// "removeComments": true, /* Do not emit comments to output. */
// "noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
/* Source Map Options */
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
}, },
"exclude": ["node_modules", "**/*.test.ts"] "exclude": ["__tests__", "lib", "node_modules"]
} }