mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-10-31 23:36:21 +07:00 
			
		
		
		
	| @ -116,7 +116,7 @@ with: | ||||
| Inputs supported by this GitHub Action. | ||||
|  | ||||
| - php-version `required` | ||||
| - extension `optional` | ||||
| - extensions `optional` | ||||
| - ini-values `optional` | ||||
| - coverage `optional` | ||||
| - pecl `optional` | ||||
|  | ||||
| @ -41,16 +41,32 @@ describe('Extension tests', () => { | ||||
|       'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.4-igbinary php7.4-redis' | ||||
|     ); | ||||
|  | ||||
|     linux = await extensions.addExtension('phalcon3, phalcon4', '7.2', 'linux'); | ||||
|     linux = await extensions.addExtension('gearman', '7.0', 'linux'); | ||||
|     expect(linux).toContain('gearman.sh 7.0'); | ||||
|     linux = await extensions.addExtension('gearman', '7.1', 'linux'); | ||||
|     expect(linux).toContain('gearman.sh 7.1'); | ||||
|  | ||||
|     linux = await extensions.addExtension( | ||||
|       'phalcon3, phalcon4, gearman', | ||||
|       '7.2', | ||||
|       'linux' | ||||
|     ); | ||||
|     expect(linux).toContain('phalcon.sh master 7.2'); | ||||
|     expect(linux).toContain('phalcon.sh 4.0.x 7.2'); | ||||
|     expect(linux).toContain('gearman.sh 7.2'); | ||||
|  | ||||
|     linux = await extensions.addExtension('phalcon3, phalcon4', '7.3', 'linux'); | ||||
|     linux = await extensions.addExtension( | ||||
|       'phalcon3, phalcon4, gearman', | ||||
|       '7.3', | ||||
|       'linux' | ||||
|     ); | ||||
|     expect(linux).toContain('phalcon.sh master 7.3'); | ||||
|     expect(linux).toContain('phalcon.sh 4.0.x 7.3'); | ||||
|     expect(linux).toContain('gearman.sh 7.3'); | ||||
|  | ||||
|     linux = await extensions.addExtension('phalcon4', '7.4', 'linux'); | ||||
|     linux = await extensions.addExtension('phalcon4, gearman', '7.4', 'linux'); | ||||
|     expect(linux).toContain('phalcon.sh 4.0.x 7.4'); | ||||
|     expect(linux).toContain('gearman.sh 7.4'); | ||||
|  | ||||
|     linux = await extensions.addExtension('xdebug', '7.2', 'fedora'); | ||||
|     expect(linux).toContain('Platform fedora is not supported'); | ||||
|  | ||||
| @ -31,7 +31,8 @@ jest.mock('../src/install', () => ({ | ||||
|   run: jest.fn().mockImplementation( | ||||
|     async (): Promise<string> => { | ||||
|       const os_version: string = process.env['RUNNER_OS'] || ''; | ||||
|       const version: string = process.env['php-version'] || ''; | ||||
|       let version: string = process.env['php-version'] || ''; | ||||
|       version = version.length > 1 ? version : version + '.0'; | ||||
|       let script = ''; | ||||
|       switch (os_version) { | ||||
|         case 'darwin': | ||||
| @ -85,10 +86,16 @@ function setEnv( | ||||
|  | ||||
| describe('Install', () => { | ||||
|   it('Test install on windows', async () => { | ||||
|     setEnv('7.3', 'win32', '', '', '', ''); | ||||
|     setEnv('7.0', 'win32', '', '', '', ''); | ||||
|     // @ts-ignore | ||||
|     let script: string = await install.run(); | ||||
|     expect(script).toContain('initial script'); | ||||
|     expect(script).toContain('pwsh script.ps1 -version 7.0 -dir ' + __dirname); | ||||
|  | ||||
|     setEnv('7.3', 'win32', '', '', '', ''); | ||||
|     // @ts-ignore | ||||
|     script = await install.run(); | ||||
|     expect(script).toContain('initial script'); | ||||
|     expect(script).toContain('pwsh script.ps1 -version 7.3 -dir ' + __dirname); | ||||
|  | ||||
|     setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', ''); | ||||
|  | ||||
							
								
								
									
										541
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										541
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -43,6 +43,303 @@ module.exports = | ||||
| /************************************************************************/ | ||||
| /******/ ({ | ||||
|  | ||||
| /***/ 1: | ||||
| /***/ (function(__unusedmodule, exports, __webpack_require__) { | ||||
|  | ||||
| "use strict"; | ||||
|  | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const childProcess = __webpack_require__(129); | ||||
| const path = __webpack_require__(622); | ||||
| const util_1 = __webpack_require__(669); | ||||
| const ioUtil = __webpack_require__(672); | ||||
| const exec = util_1.promisify(childProcess.exec); | ||||
| /** | ||||
|  * Copies a file or folder. | ||||
|  * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js | ||||
|  * | ||||
|  * @param     source    source path | ||||
|  * @param     dest      destination path | ||||
|  * @param     options   optional. See CopyOptions. | ||||
|  */ | ||||
| function cp(source, dest, options = {}) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         const { force, recursive } = readCopyOptions(options); | ||||
|         const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null; | ||||
|         // Dest is an existing file, but not forcing | ||||
|         if (destStat && destStat.isFile() && !force) { | ||||
|             return; | ||||
|         } | ||||
|         // If dest is an existing directory, should copy inside. | ||||
|         const newDest = destStat && destStat.isDirectory() | ||||
|             ? path.join(dest, path.basename(source)) | ||||
|             : dest; | ||||
|         if (!(yield ioUtil.exists(source))) { | ||||
|             throw new Error(`no such file or directory: ${source}`); | ||||
|         } | ||||
|         const sourceStat = yield ioUtil.stat(source); | ||||
|         if (sourceStat.isDirectory()) { | ||||
|             if (!recursive) { | ||||
|                 throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`); | ||||
|             } | ||||
|             else { | ||||
|                 yield cpDirRecursive(source, newDest, 0, force); | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             if (path.relative(source, newDest) === '') { | ||||
|                 // a file cannot be copied to itself | ||||
|                 throw new Error(`'${newDest}' and '${source}' are the same file`); | ||||
|             } | ||||
|             yield copyFile(source, newDest, force); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.cp = cp; | ||||
| /** | ||||
|  * Moves a path. | ||||
|  * | ||||
|  * @param     source    source path | ||||
|  * @param     dest      destination path | ||||
|  * @param     options   optional. See MoveOptions. | ||||
|  */ | ||||
| function mv(source, dest, options = {}) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         if (yield ioUtil.exists(dest)) { | ||||
|             let destExists = true; | ||||
|             if (yield ioUtil.isDirectory(dest)) { | ||||
|                 // If dest is directory copy src into dest | ||||
|                 dest = path.join(dest, path.basename(source)); | ||||
|                 destExists = yield ioUtil.exists(dest); | ||||
|             } | ||||
|             if (destExists) { | ||||
|                 if (options.force == null || options.force) { | ||||
|                     yield rmRF(dest); | ||||
|                 } | ||||
|                 else { | ||||
|                     throw new Error('Destination already exists'); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         yield mkdirP(path.dirname(dest)); | ||||
|         yield ioUtil.rename(source, dest); | ||||
|     }); | ||||
| } | ||||
| exports.mv = mv; | ||||
| /** | ||||
|  * Remove a path recursively with force | ||||
|  * | ||||
|  * @param inputPath path to remove | ||||
|  */ | ||||
| function rmRF(inputPath) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         if (ioUtil.IS_WINDOWS) { | ||||
|             // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another | ||||
|             // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del. | ||||
|             try { | ||||
|                 if (yield ioUtil.isDirectory(inputPath, true)) { | ||||
|                     yield exec(`rd /s /q "${inputPath}"`); | ||||
|                 } | ||||
|                 else { | ||||
|                     yield exec(`del /f /a "${inputPath}"`); | ||||
|                 } | ||||
|             } | ||||
|             catch (err) { | ||||
|                 // if you try to delete a file that doesn't exist, desired result is achieved | ||||
|                 // other errors are valid | ||||
|                 if (err.code !== 'ENOENT') | ||||
|                     throw err; | ||||
|             } | ||||
|             // Shelling out fails to remove a symlink folder with missing source, this unlink catches that | ||||
|             try { | ||||
|                 yield ioUtil.unlink(inputPath); | ||||
|             } | ||||
|             catch (err) { | ||||
|                 // if you try to delete a file that doesn't exist, desired result is achieved | ||||
|                 // other errors are valid | ||||
|                 if (err.code !== 'ENOENT') | ||||
|                     throw err; | ||||
|             } | ||||
|         } | ||||
|         else { | ||||
|             let isDir = false; | ||||
|             try { | ||||
|                 isDir = yield ioUtil.isDirectory(inputPath); | ||||
|             } | ||||
|             catch (err) { | ||||
|                 // if you try to delete a file that doesn't exist, desired result is achieved | ||||
|                 // other errors are valid | ||||
|                 if (err.code !== 'ENOENT') | ||||
|                     throw err; | ||||
|                 return; | ||||
|             } | ||||
|             if (isDir) { | ||||
|                 yield exec(`rm -rf "${inputPath}"`); | ||||
|             } | ||||
|             else { | ||||
|                 yield ioUtil.unlink(inputPath); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.rmRF = rmRF; | ||||
| /** | ||||
|  * Make a directory.  Creates the full path with folders in between | ||||
|  * Will throw if it fails | ||||
|  * | ||||
|  * @param   fsPath        path to create | ||||
|  * @returns Promise<void> | ||||
|  */ | ||||
| function mkdirP(fsPath) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         yield ioUtil.mkdirP(fsPath); | ||||
|     }); | ||||
| } | ||||
| exports.mkdirP = mkdirP; | ||||
| /** | ||||
|  * Returns path of a tool had the tool actually been invoked.  Resolves via paths. | ||||
|  * If you check and the tool does not exist, it will throw. | ||||
|  * | ||||
|  * @param     tool              name of the tool | ||||
|  * @param     check             whether to check if tool exists | ||||
|  * @returns   Promise<string>   path to tool | ||||
|  */ | ||||
| function which(tool, check) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         if (!tool) { | ||||
|             throw new Error("parameter 'tool' is required"); | ||||
|         } | ||||
|         // recursive when check=true | ||||
|         if (check) { | ||||
|             const result = yield which(tool, false); | ||||
|             if (!result) { | ||||
|                 if (ioUtil.IS_WINDOWS) { | ||||
|                     throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`); | ||||
|                 } | ||||
|                 else { | ||||
|                     throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         try { | ||||
|             // build the list of extensions to try | ||||
|             const extensions = []; | ||||
|             if (ioUtil.IS_WINDOWS && process.env.PATHEXT) { | ||||
|                 for (const extension of process.env.PATHEXT.split(path.delimiter)) { | ||||
|                     if (extension) { | ||||
|                         extensions.push(extension); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             // if it's rooted, return it if exists. otherwise return empty. | ||||
|             if (ioUtil.isRooted(tool)) { | ||||
|                 const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions); | ||||
|                 if (filePath) { | ||||
|                     return filePath; | ||||
|                 } | ||||
|                 return ''; | ||||
|             } | ||||
|             // if any path separators, return empty | ||||
|             if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) { | ||||
|                 return ''; | ||||
|             } | ||||
|             // build the list of directories | ||||
|             // | ||||
|             // Note, technically "where" checks the current directory on Windows. From a toolkit perspective, | ||||
|             // it feels like we should not do this. Checking the current directory seems like more of a use | ||||
|             // case of a shell, and the which() function exposed by the toolkit should strive for consistency | ||||
|             // across platforms. | ||||
|             const directories = []; | ||||
|             if (process.env.PATH) { | ||||
|                 for (const p of process.env.PATH.split(path.delimiter)) { | ||||
|                     if (p) { | ||||
|                         directories.push(p); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             // return the first match | ||||
|             for (const directory of directories) { | ||||
|                 const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions); | ||||
|                 if (filePath) { | ||||
|                     return filePath; | ||||
|                 } | ||||
|             } | ||||
|             return ''; | ||||
|         } | ||||
|         catch (err) { | ||||
|             throw new Error(`which failed with message ${err.message}`); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.which = which; | ||||
| function readCopyOptions(options) { | ||||
|     const force = options.force == null ? true : options.force; | ||||
|     const recursive = Boolean(options.recursive); | ||||
|     return { force, recursive }; | ||||
| } | ||||
| function cpDirRecursive(sourceDir, destDir, currentDepth, force) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         // Ensure there is not a run away recursive copy | ||||
|         if (currentDepth >= 255) | ||||
|             return; | ||||
|         currentDepth++; | ||||
|         yield mkdirP(destDir); | ||||
|         const files = yield ioUtil.readdir(sourceDir); | ||||
|         for (const fileName of files) { | ||||
|             const srcFile = `${sourceDir}/${fileName}`; | ||||
|             const destFile = `${destDir}/${fileName}`; | ||||
|             const srcFileStat = yield ioUtil.lstat(srcFile); | ||||
|             if (srcFileStat.isDirectory()) { | ||||
|                 // Recurse | ||||
|                 yield cpDirRecursive(srcFile, destFile, currentDepth, force); | ||||
|             } | ||||
|             else { | ||||
|                 yield copyFile(srcFile, destFile, force); | ||||
|             } | ||||
|         } | ||||
|         // Change the mode for the newly created directory | ||||
|         yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode); | ||||
|     }); | ||||
| } | ||||
| // Buffered file copy | ||||
| function copyFile(srcFile, destFile, force) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) { | ||||
|             // unlink/re-link it | ||||
|             try { | ||||
|                 yield ioUtil.lstat(destFile); | ||||
|                 yield ioUtil.unlink(destFile); | ||||
|             } | ||||
|             catch (e) { | ||||
|                 // Try to override file permission | ||||
|                 if (e.code === 'EPERM') { | ||||
|                     yield ioUtil.chmod(destFile, '0666'); | ||||
|                     yield ioUtil.unlink(destFile); | ||||
|                 } | ||||
|                 // other errors = it doesn't exist, no work to do | ||||
|             } | ||||
|             // Copy over symlink | ||||
|             const symlinkFull = yield ioUtil.readlink(srcFile); | ||||
|             yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null); | ||||
|         } | ||||
|         else if (!(yield ioUtil.exists(destFile)) || force) { | ||||
|             yield ioUtil.copyFile(srcFile, destFile); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| //# sourceMappingURL=io.js.map | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 9: | ||||
| /***/ (function(__unusedmodule, exports, __webpack_require__) { | ||||
|  | ||||
| @ -61,6 +358,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const os = __webpack_require__(87); | ||||
| const events = __webpack_require__(614); | ||||
| const child = __webpack_require__(129); | ||||
| const path = __webpack_require__(622); | ||||
| const io = __webpack_require__(1); | ||||
| const ioUtil = __webpack_require__(672); | ||||
| /* eslint-disable @typescript-eslint/unbound-method */ | ||||
| const IS_WINDOWS = process.platform === 'win32'; | ||||
| /* | ||||
| @ -406,6 +706,16 @@ class ToolRunner extends events.EventEmitter { | ||||
|      */ | ||||
|     exec() { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             // root the tool path if it is unrooted and contains relative pathing | ||||
|             if (!ioUtil.isRooted(this.toolPath) && | ||||
|                 (this.toolPath.includes('/') || | ||||
|                     (IS_WINDOWS && this.toolPath.includes('\\')))) { | ||||
|                 // prefer options.cwd if it is specified, however options.cwd may also need to be rooted | ||||
|                 this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath); | ||||
|             } | ||||
|             // if the tool is only a file name, then resolve it from the PATH | ||||
|             // otherwise verify it exists (add extension on Windows if necessary) | ||||
|             this.toolPath = yield io.which(this.toolPath, true); | ||||
|             return new Promise((resolve, reject) => { | ||||
|                 this._debug(`exec tool: ${this.toolPath}`); | ||||
|                 this._debug('arguments:'); | ||||
| @ -892,6 +1202,13 @@ function suppressOutput(os_version) { | ||||
| exports.suppressOutput = suppressOutput; | ||||
|  | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 357: | ||||
| /***/ (function(module) { | ||||
|  | ||||
| module.exports = require("assert"); | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 431: | ||||
| @ -1514,7 +1831,8 @@ function run() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             const os_version = process.platform; | ||||
|             const version = yield utils.getInput('php-version', true); | ||||
|             let version = yield utils.getInput('php-version', true); | ||||
|             version = version.length > 1 ? version : version + '.0'; | ||||
|             // check the os version and run the respective script | ||||
|             let script_path = ''; | ||||
|             switch (os_version) { | ||||
| @ -1544,6 +1862,215 @@ exports.run = run; | ||||
| run(); | ||||
|  | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 669: | ||||
| /***/ (function(module) { | ||||
|  | ||||
| module.exports = require("util"); | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 672: | ||||
| /***/ (function(__unusedmodule, exports, __webpack_require__) { | ||||
|  | ||||
| "use strict"; | ||||
|  | ||||
| var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||
|     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||||
|     return new (P || (P = Promise))(function (resolve, reject) { | ||||
|         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||
|         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||
|         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||||
|         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||
|     }); | ||||
| }; | ||||
| var _a; | ||||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||||
| const assert_1 = __webpack_require__(357); | ||||
| const fs = __webpack_require__(747); | ||||
| const path = __webpack_require__(622); | ||||
| _a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink; | ||||
| exports.IS_WINDOWS = process.platform === 'win32'; | ||||
| function exists(fsPath) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             yield exports.stat(fsPath); | ||||
|         } | ||||
|         catch (err) { | ||||
|             if (err.code === 'ENOENT') { | ||||
|                 return false; | ||||
|             } | ||||
|             throw err; | ||||
|         } | ||||
|         return true; | ||||
|     }); | ||||
| } | ||||
| exports.exists = exists; | ||||
| function isDirectory(fsPath, useStat = false) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath); | ||||
|         return stats.isDirectory(); | ||||
|     }); | ||||
| } | ||||
| exports.isDirectory = isDirectory; | ||||
| /** | ||||
|  * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like: | ||||
|  * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases). | ||||
|  */ | ||||
| function isRooted(p) { | ||||
|     p = normalizeSeparators(p); | ||||
|     if (!p) { | ||||
|         throw new Error('isRooted() parameter "p" cannot be empty'); | ||||
|     } | ||||
|     if (exports.IS_WINDOWS) { | ||||
|         return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello | ||||
|         ); // e.g. C: or C:\hello | ||||
|     } | ||||
|     return p.startsWith('/'); | ||||
| } | ||||
| exports.isRooted = isRooted; | ||||
| /** | ||||
|  * Recursively create a directory at `fsPath`. | ||||
|  * | ||||
|  * This implementation is optimistic, meaning it attempts to create the full | ||||
|  * path first, and backs up the path stack from there. | ||||
|  * | ||||
|  * @param fsPath The path to create | ||||
|  * @param maxDepth The maximum recursion depth | ||||
|  * @param depth The current recursion depth | ||||
|  */ | ||||
| function mkdirP(fsPath, maxDepth = 1000, depth = 1) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         assert_1.ok(fsPath, 'a path argument must be provided'); | ||||
|         fsPath = path.resolve(fsPath); | ||||
|         if (depth >= maxDepth) | ||||
|             return exports.mkdir(fsPath); | ||||
|         try { | ||||
|             yield exports.mkdir(fsPath); | ||||
|             return; | ||||
|         } | ||||
|         catch (err) { | ||||
|             switch (err.code) { | ||||
|                 case 'ENOENT': { | ||||
|                     yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1); | ||||
|                     yield exports.mkdir(fsPath); | ||||
|                     return; | ||||
|                 } | ||||
|                 default: { | ||||
|                     let stats; | ||||
|                     try { | ||||
|                         stats = yield exports.stat(fsPath); | ||||
|                     } | ||||
|                     catch (err2) { | ||||
|                         throw err; | ||||
|                     } | ||||
|                     if (!stats.isDirectory()) | ||||
|                         throw err; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| } | ||||
| exports.mkdirP = mkdirP; | ||||
| /** | ||||
|  * Best effort attempt to determine whether a file exists and is executable. | ||||
|  * @param filePath    file path to check | ||||
|  * @param extensions  additional file extensions to try | ||||
|  * @return if file exists and is executable, returns the file path. otherwise empty string. | ||||
|  */ | ||||
| function tryGetExecutablePath(filePath, extensions) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         let stats = undefined; | ||||
|         try { | ||||
|             // test file exists | ||||
|             stats = yield exports.stat(filePath); | ||||
|         } | ||||
|         catch (err) { | ||||
|             if (err.code !== 'ENOENT') { | ||||
|                 // eslint-disable-next-line no-console | ||||
|                 console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); | ||||
|             } | ||||
|         } | ||||
|         if (stats && stats.isFile()) { | ||||
|             if (exports.IS_WINDOWS) { | ||||
|                 // on Windows, test for valid extension | ||||
|                 const upperExt = path.extname(filePath).toUpperCase(); | ||||
|                 if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) { | ||||
|                     return filePath; | ||||
|                 } | ||||
|             } | ||||
|             else { | ||||
|                 if (isUnixExecutable(stats)) { | ||||
|                     return filePath; | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // try each extension | ||||
|         const originalFilePath = filePath; | ||||
|         for (const extension of extensions) { | ||||
|             filePath = originalFilePath + extension; | ||||
|             stats = undefined; | ||||
|             try { | ||||
|                 stats = yield exports.stat(filePath); | ||||
|             } | ||||
|             catch (err) { | ||||
|                 if (err.code !== 'ENOENT') { | ||||
|                     // eslint-disable-next-line no-console | ||||
|                     console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); | ||||
|                 } | ||||
|             } | ||||
|             if (stats && stats.isFile()) { | ||||
|                 if (exports.IS_WINDOWS) { | ||||
|                     // preserve the case of the actual file (since an extension was appended) | ||||
|                     try { | ||||
|                         const directory = path.dirname(filePath); | ||||
|                         const upperName = path.basename(filePath).toUpperCase(); | ||||
|                         for (const actualName of yield exports.readdir(directory)) { | ||||
|                             if (upperName === actualName.toUpperCase()) { | ||||
|                                 filePath = path.join(directory, actualName); | ||||
|                                 break; | ||||
|                             } | ||||
|                         } | ||||
|                     } | ||||
|                     catch (err) { | ||||
|                         // eslint-disable-next-line no-console | ||||
|                         console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); | ||||
|                     } | ||||
|                     return filePath; | ||||
|                 } | ||||
|                 else { | ||||
|                     if (isUnixExecutable(stats)) { | ||||
|                         return filePath; | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         return ''; | ||||
|     }); | ||||
| } | ||||
| exports.tryGetExecutablePath = tryGetExecutablePath; | ||||
| function normalizeSeparators(p) { | ||||
|     p = p || ''; | ||||
|     if (exports.IS_WINDOWS) { | ||||
|         // convert slashes on Windows | ||||
|         p = p.replace(/\//g, '\\'); | ||||
|         // remove redundant slashes | ||||
|         return p.replace(/\\\\+/g, '\\'); | ||||
|     } | ||||
|     // remove redundant slashes | ||||
|     return p.replace(/\/\/+/g, '/'); | ||||
| } | ||||
| // on Mac/Linux, test the execute bit | ||||
| //     R   W  X  R  W X R W X | ||||
| //   256 128 64 32 16 8 4 2 1 | ||||
| function isUnixExecutable(stats) { | ||||
|     return ((stats.mode & 1) > 0 || | ||||
|         ((stats.mode & 8) > 0 && stats.gid === process.getgid()) || | ||||
|         ((stats.mode & 64) > 0 && stats.uid === process.getuid())); | ||||
| } | ||||
| //# sourceMappingURL=io-util.js.map | ||||
|  | ||||
| /***/ }), | ||||
|  | ||||
| /***/ 747: | ||||
| @ -1682,6 +2209,18 @@ function addExtensionLinux(extension_csv, version) { | ||||
|                                 version + | ||||
|                                 ' >/dev/null 2>&1'; | ||||
|                         break; | ||||
|                     case '7.0gearman': | ||||
|                     case '7.1gearman': | ||||
|                     case '7.2gearman': | ||||
|                     case '7.3gearman': | ||||
|                     case '7.4gearman': | ||||
|                         install_command = | ||||
|                             'sh ' + | ||||
|                                 path.join(__dirname, '../src/scripts/gearman.sh') + | ||||
|                                 ' ' + | ||||
|                                 version + | ||||
|                                 ' >/dev/null 2>&1'; | ||||
|                         break; | ||||
|                     default: | ||||
|                         install_command = | ||||
|                             'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php' + | ||||
|  | ||||
							
								
								
									
										281
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										281
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "setup-php", | ||||
|   "version": "1.6.0", | ||||
|   "version": "1.6.1", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
| @ -10,9 +10,17 @@ | ||||
|       "integrity": "sha512-ZKdyhlSlyz38S6YFfPnyNgCDZuAF2T0Qv5eHflNWytPS8Qjvz39bZFMry9Bb/dpSnqWcNeav5yM2CTYpJeY+Dw==" | ||||
|     }, | ||||
|     "@actions/exec": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.2.tgz", | ||||
|       "integrity": "sha512-Yo/wfcFuxbVjAaAfvx3aGLhMEuonOahas2jf8BwyA52IkXTAmLi7YVZTpGAQG/lTxuGoNLg9slTWQD4rr7rMDQ==", | ||||
|       "requires": { | ||||
|         "@actions/io": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "@actions/io": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.1.tgz", | ||||
|       "integrity": "sha512-nvFkxwiicvpzNiCBF4wFBDfnBvi7xp/as7LE1hBxBxKG2L29+gkIPBiLKMVORL+Hg3JNf07AKRfl0V5djoypjQ==" | ||||
|       "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.1.tgz", | ||||
|       "integrity": "sha512-rhq+tfZukbtaus7xyUtwKfuiCRXd1hWSfmJNEpFgBQJ4woqPEpsBw04awicjwz9tyG2/MVhAEMfVn664Cri5zA==" | ||||
|     }, | ||||
|     "@babel/code-frame": { | ||||
|       "version": "7.5.5", | ||||
| @ -24,15 +32,15 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@babel/core": { | ||||
|       "version": "7.7.4", | ||||
|       "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.4.tgz", | ||||
|       "integrity": "sha512-+bYbx56j4nYBmpsWtnPUsKW3NdnYxbqyfrP2w9wILBuHzdfIKz9prieZK0DFPyIzkjYVUe4QkusGL07r5pXznQ==", | ||||
|       "version": "7.7.5", | ||||
|       "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.5.tgz", | ||||
|       "integrity": "sha512-M42+ScN4+1S9iB6f+TL7QBpoQETxbclx+KNoKJABghnKYE+fMzSGqst0BZJc8CpI625bwPwYgUyRvxZ+0mZzpw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@babel/code-frame": "^7.5.5", | ||||
|         "@babel/generator": "^7.7.4", | ||||
|         "@babel/helpers": "^7.7.4", | ||||
|         "@babel/parser": "^7.7.4", | ||||
|         "@babel/parser": "^7.7.5", | ||||
|         "@babel/template": "^7.7.4", | ||||
|         "@babel/traverse": "^7.7.4", | ||||
|         "@babel/types": "^7.7.4", | ||||
| @ -137,9 +145,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@babel/parser": { | ||||
|       "version": "7.7.4", | ||||
|       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.4.tgz", | ||||
|       "integrity": "sha512-jIwvLO0zCL+O/LmEJQjWA75MQTWwx3c3u2JOTDK5D3/9egrWRRA0/0hk9XXywYnXZVVpzrBYeIQTmhwUaePI9g==", | ||||
|       "version": "7.7.5", | ||||
|       "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.7.5.tgz", | ||||
|       "integrity": "sha512-KNlOe9+/nk4i29g0VXgl8PEXIRms5xKLJeuZ6UptN0fHv+jDiriG+y94X6qAgWTR0h3KaoM1wK5G5h7MHFRSig==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@babel/plugin-syntax-object-rest-spread": { | ||||
| @ -436,9 +444,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@types/babel__generator": { | ||||
|       "version": "7.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz", | ||||
|       "integrity": "sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw==", | ||||
|       "version": "7.6.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", | ||||
|       "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@babel/types": "^7.0.0" | ||||
| @ -510,9 +518,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "12.12.14", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.14.tgz", | ||||
|       "integrity": "sha512-u/SJDyXwuihpwjXy7hOOghagLEV1KdAST6syfnOk6QZAMzZuWZqXy5aYYZbh8Jdpd4escVFP0MvftHNDb9pruA==", | ||||
|       "version": "12.12.17", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.17.tgz", | ||||
|       "integrity": "sha512-Is+l3mcHvs47sKy+afn2O1rV4ldZFU7W8101cNlOd+MRbjM4Onida8jSZnJdTe/0Pcf25g9BNIUsuugmE6puHA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/normalize-package-data": { | ||||
| @ -543,12 +551,12 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@typescript-eslint/eslint-plugin": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.10.0.tgz", | ||||
|       "integrity": "sha512-rT51fNLW0u3fnDGnAHVC5nu+Das+y2CpW10yqvf6/j5xbuUV3FxA3mBaIbM24CXODXjbgUznNb4Kg9XZOUxKAw==", | ||||
|       "version": "2.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.11.0.tgz", | ||||
|       "integrity": "sha512-G2HHA1vpMN0EEbUuWubiCCfd0R3a30BB+UdvnFkxwZIxYEGOrWEXDv8tBFO9f44CWc47Xv9lLM3VSn4ORLI2bA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@typescript-eslint/experimental-utils": "2.10.0", | ||||
|         "@typescript-eslint/experimental-utils": "2.11.0", | ||||
|         "eslint-utils": "^1.4.3", | ||||
|         "functional-red-black-tree": "^1.0.1", | ||||
|         "regexpp": "^3.0.0", | ||||
| @ -556,32 +564,32 @@ | ||||
|       } | ||||
|     }, | ||||
|     "@typescript-eslint/experimental-utils": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.10.0.tgz", | ||||
|       "integrity": "sha512-FZhWq6hWWZBP76aZ7bkrfzTMP31CCefVIImrwP3giPLcoXocmLTmr92NLZxuIcTL4GTEOE33jQMWy9PwelL+yQ==", | ||||
|       "version": "2.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.11.0.tgz", | ||||
|       "integrity": "sha512-YxcA/y0ZJaCc/fB/MClhcDxHI0nOBB7v2/WxBju2cOTanX7jO9ttQq6Fy4yW9UaY5bPd9xL3cun3lDVqk67sPQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/json-schema": "^7.0.3", | ||||
|         "@typescript-eslint/typescript-estree": "2.10.0", | ||||
|         "@typescript-eslint/typescript-estree": "2.11.0", | ||||
|         "eslint-scope": "^5.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@typescript-eslint/parser": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.10.0.tgz", | ||||
|       "integrity": "sha512-wQNiBokcP5ZsTuB+i4BlmVWq6o+oAhd8en2eSm/EE9m7BgZUIfEeYFd6z3S+T7bgNuloeiHA1/cevvbBDLr98g==", | ||||
|       "version": "2.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.11.0.tgz", | ||||
|       "integrity": "sha512-DyGXeqhb3moMioEFZIHIp7oXBBh7dEfPTzGrlyP0Mi9ScCra4SWEGs3kPd18mG7Sy9Wy8z88zmrw5tSGL6r/6A==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/eslint-visitor-keys": "^1.0.0", | ||||
|         "@typescript-eslint/experimental-utils": "2.10.0", | ||||
|         "@typescript-eslint/typescript-estree": "2.10.0", | ||||
|         "@typescript-eslint/experimental-utils": "2.11.0", | ||||
|         "@typescript-eslint/typescript-estree": "2.11.0", | ||||
|         "eslint-visitor-keys": "^1.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "@typescript-eslint/typescript-estree": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.10.0.tgz", | ||||
|       "integrity": "sha512-oOYnplddQNm/LGVkqbkAwx4TIBuuZ36cAQq9v3nFIU9FmhemHuVzAesMSXNQDdAzCa5bFgCrfD3JWhYVKlRN2g==", | ||||
|       "version": "2.11.0", | ||||
|       "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.11.0.tgz", | ||||
|       "integrity": "sha512-HGY4+d4MagO6cKMcKfIKaTMxcAv7dEVnji2Zi+vi5VV8uWAM631KjAB5GxFcexMYrwKT0EekRiiGK1/Sd7VFGA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "debug": "^4.1.1", | ||||
| @ -721,13 +729,13 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "array-includes": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", | ||||
|       "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", | ||||
|       "version": "3.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.0.tgz", | ||||
|       "integrity": "sha512-ONOEQoKrvXPKk7Su92Co0YMqYO32FfqJTzkKU9u2UpIXyYZIzLSvpdg4AwvSw4mSUW0czu6inK+zby6Oj6gDjQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "es-abstract": "^1.7.0" | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.0-next.0" | ||||
|       } | ||||
|     }, | ||||
|     "array-unique": { | ||||
| @ -736,6 +744,16 @@ | ||||
|       "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "array.prototype.flat": { | ||||
|       "version": "1.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", | ||||
|       "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.0-next.1" | ||||
|       } | ||||
|     }, | ||||
|     "asn1": { | ||||
|       "version": "0.2.4", | ||||
|       "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", | ||||
| @ -962,6 +980,16 @@ | ||||
|         "tweetnacl": "^0.14.3" | ||||
|       } | ||||
|     }, | ||||
|     "bindings": { | ||||
|       "version": "1.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", | ||||
|       "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", | ||||
|       "dev": true, | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|         "file-uri-to-path": "1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "brace-expansion": { | ||||
|       "version": "1.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||||
| @ -1558,9 +1586,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "es-abstract": { | ||||
|       "version": "1.16.3", | ||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.3.tgz", | ||||
|       "integrity": "sha512-WtY7Fx5LiOnSYgF5eg/1T+GONaGmpvpPdCpSnYij+U2gDTL0UPfWrhDw7b2IYb+9NQJsYpCA0wOQvZfsd6YwRw==", | ||||
|       "version": "1.17.0-next.1", | ||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz", | ||||
|       "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "es-to-primitive": "^1.2.1", | ||||
| @ -1571,6 +1599,7 @@ | ||||
|         "is-regex": "^1.0.4", | ||||
|         "object-inspect": "^1.7.0", | ||||
|         "object-keys": "^1.1.1", | ||||
|         "object.assign": "^4.1.0", | ||||
|         "string.prototype.trimleft": "^2.1.0", | ||||
|         "string.prototype.trimright": "^2.1.0" | ||||
|       } | ||||
| @ -1703,12 +1732,12 @@ | ||||
|       } | ||||
|     }, | ||||
|     "eslint-module-utils": { | ||||
|       "version": "2.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", | ||||
|       "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", | ||||
|       "version": "2.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.0.tgz", | ||||
|       "integrity": "sha512-kCo8pZaNz2dsAW7nCUjuVoI11EBXXpIzfNxmaoLhXoRDOnqXLC4iSGVRdZPhOitfbdEfMEfKOiENaK6wDPZEGw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "debug": "^2.6.8", | ||||
|         "debug": "^2.6.9", | ||||
|         "pkg-dir": "^2.0.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
| @ -1730,22 +1759,23 @@ | ||||
|       } | ||||
|     }, | ||||
|     "eslint-plugin-import": { | ||||
|       "version": "2.18.2", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", | ||||
|       "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", | ||||
|       "version": "2.19.1", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.19.1.tgz", | ||||
|       "integrity": "sha512-x68131aKoCZlCae7rDXKSAQmbT5DQuManyXo2sK6fJJ0aK5CWAkv6A6HJZGgqC8IhjQxYPgo6/IY4Oz8AFsbBw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "array-includes": "^3.0.3", | ||||
|         "array.prototype.flat": "^1.2.1", | ||||
|         "contains-path": "^0.1.0", | ||||
|         "debug": "^2.6.9", | ||||
|         "doctrine": "1.5.0", | ||||
|         "eslint-import-resolver-node": "^0.3.2", | ||||
|         "eslint-module-utils": "^2.4.0", | ||||
|         "eslint-module-utils": "^2.4.1", | ||||
|         "has": "^1.0.3", | ||||
|         "minimatch": "^3.0.4", | ||||
|         "object.values": "^1.1.0", | ||||
|         "read-pkg-up": "^2.0.0", | ||||
|         "resolve": "^1.11.0" | ||||
|         "resolve": "^1.12.0" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "debug": { | ||||
| @ -2078,9 +2108,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fast-json-stable-stringify": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", | ||||
|       "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", | ||||
|       "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fast-levenshtein": { | ||||
| @ -2090,12 +2120,12 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fb-watchman": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", | ||||
|       "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", | ||||
|       "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "bser": "^2.0.0" | ||||
|         "bser": "2.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "figures": { | ||||
| @ -2116,6 +2146,13 @@ | ||||
|         "flat-cache": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "file-uri-to-path": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", | ||||
|       "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", | ||||
|       "dev": true, | ||||
|       "optional": true | ||||
|     }, | ||||
|     "fill-range": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | ||||
| @ -2209,14 +2246,15 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fsevents": { | ||||
|       "version": "1.2.9", | ||||
|       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", | ||||
|       "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", | ||||
|       "version": "1.2.11", | ||||
|       "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", | ||||
|       "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", | ||||
|       "dev": true, | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|         "bindings": "^1.5.0", | ||||
|         "nan": "^2.12.1", | ||||
|         "node-pre-gyp": "^0.12.0" | ||||
|         "node-pre-gyp": "*" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "abbrev": { | ||||
| @ -2249,21 +2287,19 @@ | ||||
|         "balanced-match": { | ||||
|           "version": "1.0.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "brace-expansion": { | ||||
|           "version": "1.1.11", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "balanced-match": "^1.0.0", | ||||
|             "concat-map": "0.0.1" | ||||
|           } | ||||
|         }, | ||||
|         "chownr": { | ||||
|           "version": "1.1.1", | ||||
|           "version": "1.1.3", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
| @ -2271,20 +2307,17 @@ | ||||
|         "code-point-at": { | ||||
|           "version": "1.1.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "concat-map": { | ||||
|           "version": "0.0.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "console-control-strings": { | ||||
|           "version": "1.1.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "core-util-is": { | ||||
|           "version": "1.0.2", | ||||
| @ -2293,7 +2326,7 @@ | ||||
|           "optional": true | ||||
|         }, | ||||
|         "debug": { | ||||
|           "version": "4.1.1", | ||||
|           "version": "3.2.6", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2320,12 +2353,12 @@ | ||||
|           "optional": true | ||||
|         }, | ||||
|         "fs-minipass": { | ||||
|           "version": "1.2.5", | ||||
|           "version": "1.2.7", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "minipass": "^2.2.1" | ||||
|             "minipass": "^2.6.0" | ||||
|           } | ||||
|         }, | ||||
|         "fs.realpath": { | ||||
| @ -2351,7 +2384,7 @@ | ||||
|           } | ||||
|         }, | ||||
|         "glob": { | ||||
|           "version": "7.1.3", | ||||
|           "version": "7.1.6", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2380,7 +2413,7 @@ | ||||
|           } | ||||
|         }, | ||||
|         "ignore-walk": { | ||||
|           "version": "3.0.1", | ||||
|           "version": "3.0.3", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2399,10 +2432,9 @@ | ||||
|           } | ||||
|         }, | ||||
|         "inherits": { | ||||
|           "version": "2.0.3", | ||||
|           "version": "2.0.4", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "ini": { | ||||
|           "version": "1.3.5", | ||||
| @ -2414,7 +2446,6 @@ | ||||
|           "version": "1.0.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "number-is-nan": "^1.0.0" | ||||
|           } | ||||
| @ -2429,7 +2460,6 @@ | ||||
|           "version": "3.0.4", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "brace-expansion": "^1.1.7" | ||||
|           } | ||||
| @ -2437,56 +2467,53 @@ | ||||
|         "minimist": { | ||||
|           "version": "0.0.8", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "minipass": { | ||||
|           "version": "2.3.5", | ||||
|           "version": "2.9.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "safe-buffer": "^5.1.2", | ||||
|             "yallist": "^3.0.0" | ||||
|           } | ||||
|         }, | ||||
|         "minizlib": { | ||||
|           "version": "1.2.1", | ||||
|           "version": "1.3.3", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "minipass": "^2.2.1" | ||||
|             "minipass": "^2.9.0" | ||||
|           } | ||||
|         }, | ||||
|         "mkdirp": { | ||||
|           "version": "0.5.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "minimist": "0.0.8" | ||||
|           } | ||||
|         }, | ||||
|         "ms": { | ||||
|           "version": "2.1.1", | ||||
|           "version": "2.1.2", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|         }, | ||||
|         "needle": { | ||||
|           "version": "2.3.0", | ||||
|           "version": "2.4.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "debug": "^4.1.0", | ||||
|             "debug": "^3.2.6", | ||||
|             "iconv-lite": "^0.4.4", | ||||
|             "sax": "^1.2.4" | ||||
|           } | ||||
|         }, | ||||
|         "node-pre-gyp": { | ||||
|           "version": "0.12.0", | ||||
|           "version": "0.14.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2500,7 +2527,7 @@ | ||||
|             "rc": "^1.2.7", | ||||
|             "rimraf": "^2.6.1", | ||||
|             "semver": "^5.3.0", | ||||
|             "tar": "^4" | ||||
|             "tar": "^4.4.2" | ||||
|           } | ||||
|         }, | ||||
|         "nopt": { | ||||
| @ -2514,13 +2541,22 @@ | ||||
|           } | ||||
|         }, | ||||
|         "npm-bundled": { | ||||
|           "version": "1.0.6", | ||||
|           "version": "1.1.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "npm-normalize-package-bin": "^1.0.1" | ||||
|           } | ||||
|         }, | ||||
|         "npm-normalize-package-bin": { | ||||
|           "version": "1.0.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|         }, | ||||
|         "npm-packlist": { | ||||
|           "version": "1.4.1", | ||||
|           "version": "1.4.7", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2544,8 +2580,7 @@ | ||||
|         "number-is-nan": { | ||||
|           "version": "1.0.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
|           "dev": true | ||||
|         }, | ||||
|         "object-assign": { | ||||
|           "version": "4.1.1", | ||||
| @ -2557,7 +2592,6 @@ | ||||
|           "version": "1.4.0", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "wrappy": "1" | ||||
|           } | ||||
| @ -2591,7 +2625,7 @@ | ||||
|           "optional": true | ||||
|         }, | ||||
|         "process-nextick-args": { | ||||
|           "version": "2.0.0", | ||||
|           "version": "2.0.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
| @ -2632,7 +2666,7 @@ | ||||
|           } | ||||
|         }, | ||||
|         "rimraf": { | ||||
|           "version": "2.6.3", | ||||
|           "version": "2.7.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
| @ -2658,7 +2692,7 @@ | ||||
|           "optional": true | ||||
|         }, | ||||
|         "semver": { | ||||
|           "version": "5.7.0", | ||||
|           "version": "5.7.1", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true | ||||
| @ -2679,7 +2713,6 @@ | ||||
|           "version": "1.0.2", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "code-point-at": "^1.0.0", | ||||
|             "is-fullwidth-code-point": "^1.0.0", | ||||
| @ -2710,18 +2743,18 @@ | ||||
|           "optional": true | ||||
|         }, | ||||
|         "tar": { | ||||
|           "version": "4.4.8", | ||||
|           "version": "4.4.13", | ||||
|           "bundled": true, | ||||
|           "dev": true, | ||||
|           "optional": true, | ||||
|           "requires": { | ||||
|             "chownr": "^1.1.1", | ||||
|             "fs-minipass": "^1.2.5", | ||||
|             "minipass": "^2.3.4", | ||||
|             "minizlib": "^1.1.1", | ||||
|             "minipass": "^2.8.6", | ||||
|             "minizlib": "^1.2.1", | ||||
|             "mkdirp": "^0.5.0", | ||||
|             "safe-buffer": "^5.1.2", | ||||
|             "yallist": "^3.0.2" | ||||
|             "yallist": "^3.0.3" | ||||
|           } | ||||
|         }, | ||||
|         "util-deprecate": { | ||||
| @ -2745,7 +2778,7 @@ | ||||
|           "dev": true | ||||
|         }, | ||||
|         "yallist": { | ||||
|           "version": "3.0.3", | ||||
|           "version": "3.1.1", | ||||
|           "bundled": true, | ||||
|           "dev": true | ||||
|         } | ||||
| @ -4539,14 +4572,26 @@ | ||||
|         "isobject": "^3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "object.getownpropertydescriptors": { | ||||
|       "version": "2.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", | ||||
|       "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", | ||||
|     "object.assign": { | ||||
|       "version": "4.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", | ||||
|       "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "es-abstract": "^1.5.1" | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has-symbols": "^1.0.0", | ||||
|         "object-keys": "^1.0.11" | ||||
|       } | ||||
|     }, | ||||
|     "object.getownpropertydescriptors": { | ||||
|       "version": "2.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", | ||||
|       "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.17.0-next.1" | ||||
|       } | ||||
|     }, | ||||
|     "object.pick": { | ||||
| @ -4559,13 +4604,13 @@ | ||||
|       } | ||||
|     }, | ||||
|     "object.values": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", | ||||
|       "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", | ||||
|       "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.3", | ||||
|         "es-abstract": "^1.12.0", | ||||
|         "es-abstract": "^1.17.0-next.1", | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has": "^1.0.3" | ||||
|       } | ||||
| @ -5974,9 +6019,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "uglify-js": { | ||||
|       "version": "3.7.1", | ||||
|       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.1.tgz", | ||||
|       "integrity": "sha512-pnOF7jY82wdIhATVn87uUY/FHU+MDUdPLkmGFvGoclQmeu229eTkbG5gjGGBi3R7UuYYSEeYXY/TTY5j2aym2g==", | ||||
|       "version": "3.7.2", | ||||
|       "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.2.tgz", | ||||
|       "integrity": "sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==", | ||||
|       "dev": true, | ||||
|       "optional": true, | ||||
|       "requires": { | ||||
|  | ||||
							
								
								
									
										12
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								package.json
									
									
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "setup-php", | ||||
|   "version": "1.6.0", | ||||
|   "version": "1.6.1", | ||||
|   "private": false, | ||||
|   "description": "Setup PHP for use with GitHub Actions", | ||||
|   "main": "dist/index.js", | ||||
| @ -25,18 +25,18 @@ | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/core": "^1.2.0", | ||||
|     "@actions/exec": "^1.0.1", | ||||
|     "@actions/exec": "^1.0.2", | ||||
|     "fs": "0.0.1-security" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^24.0.21", | ||||
|     "@types/node": "^12.12.0", | ||||
|     "@typescript-eslint/eslint-plugin": "^2.7.0", | ||||
|     "@typescript-eslint/parser": "^2.7.0", | ||||
|     "@types/node": "^12.12.16", | ||||
|     "@typescript-eslint/eslint-plugin": "^2.11.0", | ||||
|     "@typescript-eslint/parser": "^2.11.0", | ||||
|     "@zeit/ncc": "^0.20.5", | ||||
|     "eslint": "^6.6.0", | ||||
|     "eslint-config-prettier": "^6.5.0", | ||||
|     "eslint-plugin-import": "^2.18.2", | ||||
|     "eslint-plugin-import": "^2.19.1", | ||||
|     "eslint-plugin-jest": "^23.0.3", | ||||
|     "eslint-plugin-prettier": "^3.1.1", | ||||
|     "husky": "^3.0.9", | ||||
|  | ||||
| @ -106,6 +106,18 @@ export async function addExtensionLinux( | ||||
|           version + | ||||
|           ' >/dev/null 2>&1'; | ||||
|         break; | ||||
|       case '7.0gearman': | ||||
|       case '7.1gearman': | ||||
|       case '7.2gearman': | ||||
|       case '7.3gearman': | ||||
|       case '7.4gearman': | ||||
|         install_command = | ||||
|           'sh ' + | ||||
|           path.join(__dirname, '../src/scripts/gearman.sh') + | ||||
|           ' ' + | ||||
|           version + | ||||
|           ' >/dev/null 2>&1'; | ||||
|         break; | ||||
|       default: | ||||
|         install_command = | ||||
|           'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php' + | ||||
|  | ||||
| @ -46,7 +46,8 @@ export async function build( | ||||
| export async function run(): Promise<void> { | ||||
|   try { | ||||
|     const os_version: string = process.platform; | ||||
|     const version: string = await utils.getInput('php-version', true); | ||||
|     let version: string = await utils.getInput('php-version', true); | ||||
|     version = version.length > 1 ? version : version + '.0'; | ||||
|     // check the os version and run the respective script | ||||
|     let script_path = ''; | ||||
|     switch (os_version) { | ||||
|  | ||||
							
								
								
									
										9
									
								
								src/scripts/gearman.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/scripts/gearman.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,9 @@ | ||||
| release_version=$(lsb_release -s -r) | ||||
| sudo DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:ondrej/pkg-gearman -y | ||||
| sudo DEBIAN_FRONTEND=noninteractive apt-get update -y | ||||
|  | ||||
| if [ "$release_version" = "18.04" ]; then | ||||
|   sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y libgearman-dev php"$1"-gearman | ||||
| elif [ "$release_version" = "16.04" ]; then | ||||
|   sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y php"$1"-gearman | ||||
| fi | ||||
| @ -73,6 +73,8 @@ if [ "$2" = "true" ]; then | ||||
|   wget https://github.com/pear/pearweb_phars/raw/master/install-pear-nozlib.phar >/dev/null 2>&1 | ||||
|   sudo php install-pear-nozlib.phar >/dev/null 2>&1 | ||||
|   sudo pear config-set php_ini "$ini_file" >/dev/null 2>&1 | ||||
|   sudo pear config-set auto_discover 1 | ||||
|   sudo pear channel-update pear.php.net | ||||
|   add_log "$tick" "PECL" "Installed" | ||||
| fi | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shivam Mathur
					Shivam Mathur