mirror of
				https://github.com/easingthemes/ssh-deploy.git
				synced 2025-10-30 23:30:09 +08:00 
			
		
		
		
	Merge pull request #93 from easingthemes/feature/add-tests
Feature/add tests
This commit is contained in:
		
						commit
						650beff82c
					
				
							
								
								
									
										66
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								.github/workflows/e2e.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,66 @@ | |||||||
|  | name: e2e Test | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: [ 'main' ] | ||||||
|  | 
 | ||||||
|  | env: | ||||||
|  |   TEST_HOST_DOCKER: ./test | ||||||
|  |   TEST_USER: test | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   e2e: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  | 
 | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  | 
 | ||||||
|  |       - name: Clean up old test files | ||||||
|  |         run: | | ||||||
|  |           docker stop ssh-host-container || true && docker rm ssh-host-container || true | ||||||
|  | 
 | ||||||
|  |       - name: Create ssh keys | ||||||
|  |         run: | | ||||||
|  |           echo $HOME | ||||||
|  |           ls -la $HOME | ||||||
|  |           ssh-keygen -m PEM -t rsa -b 4096 -f "$HOME/.ssh/id_rsa" -N "" | ||||||
|  |           eval `ssh-agent -s` | ||||||
|  |           ssh-add "$HOME/.ssh/id_rsa" | ||||||
|  |           ssh-add -l | ||||||
|  |           echo "SSH_PRIVATE_KEY<<EOF" >> $GITHUB_ENV | ||||||
|  |           cat $HOME/.ssh/id_rsa >> $GITHUB_ENV | ||||||
|  |           echo "EOF" >> $GITHUB_ENV | ||||||
|  | 
 | ||||||
|  |       - name: Build Host Server Image | ||||||
|  |         working-directory: ${{ env.TEST_HOST_DOCKER }} | ||||||
|  |         run: | | ||||||
|  |           docker build \ | ||||||
|  |             -t ssh-host-image . \ | ||||||
|  |             --build-arg SSH_PUB_KEY="$(cat $HOME/.ssh/id_rsa.pub)" \ | ||||||
|  |             --build-arg ssh_user="${{ env.TEST_USER }}" | ||||||
|  |           docker run -d -p 8822:22 --name=ssh-host-container ssh-host-image | ||||||
|  |           docker exec ssh-host-container sh -c "hostname --ip-address" > ip.txt | ||||||
|  |           echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV | ||||||
|  |           cat ip.txt >> $GITHUB_ENV | ||||||
|  |           echo "EOF" >> $GITHUB_ENV | ||||||
|  |         shell: bash | ||||||
|  | 
 | ||||||
|  |       - name: Create project file | ||||||
|  |         run: | | ||||||
|  |           mkdir test_project | ||||||
|  |           cd test_project | ||||||
|  |           touch index.html | ||||||
|  |           date +"%Y-%m-%d %H:%M:%S,%3N" >> index.html | ||||||
|  |           cat index.html | ||||||
|  | 
 | ||||||
|  |       - name: e2e Test published ssh-deploy action | ||||||
|  |         uses: easingthemes/ssh-deploy@main | ||||||
|  |         env: | ||||||
|  |           # SSH_PRIVATE_KEY: $EXAMPLE_SSH_PRIVATE_KEY | ||||||
|  |           # REMOTE_HOST: $EXAMPLE_REMOTE_HOST1 | ||||||
|  |           REMOTE_USER: ${{ env.TEST_USER }} | ||||||
|  |           ARGS: "-rltgoDzvO" | ||||||
|  |           SOURCE: "test_project/" | ||||||
|  |           TARGET: "/var/www/html/" | ||||||
|  |           EXCLUDE: "/dist/, /node_modules/" | ||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -19,3 +19,4 @@ node_modules/ | |||||||
| 
 | 
 | ||||||
| # IDE | # IDE | ||||||
| .idea | .idea | ||||||
|  | .vscode | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										327
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										327
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,35 +1,34 @@ | |||||||
| { | { | ||||||
|   "name": "@draganfilipovic/ssh-deploy", |   "name": "@draganfilipovic/ssh-deploy", | ||||||
|   "version": "2.2.11", |   "version": "3.0.1", | ||||||
|   "lockfileVersion": 2, |   "lockfileVersion": 2, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "@draganfilipovic/ssh-deploy", |       "name": "@draganfilipovic/ssh-deploy", | ||||||
|       "version": "2.2.11", |       "version": "3.0.1", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "command-exists": "^1.2.9", |         "command-exists": "^1.2.9", | ||||||
|         "node-cmd": "^5.0.0", |  | ||||||
|         "rsyncwrapper": "^3.0.1" |         "rsyncwrapper": "^3.0.1" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@vercel/ncc": "^0.34.0", |         "@vercel/ncc": "^0.36.0", | ||||||
|         "eslint": "^8.26.0", |         "eslint": "^8.30.0", | ||||||
|         "eslint-config-airbnb-base": "^15.0.0", |         "eslint-config-airbnb-base": "^15.0.0", | ||||||
|         "eslint-plugin-import": "^2.26.0" |         "eslint-plugin-import": "^2.26.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@eslint/eslintrc": { |     "node_modules/@eslint/eslintrc": { | ||||||
|       "version": "1.3.3", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", | ||||||
|       "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", |       "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|         "debug": "^4.3.2", |         "debug": "^4.3.2", | ||||||
|         "espree": "^9.4.0", |         "espree": "^9.4.0", | ||||||
|         "globals": "^13.15.0", |         "globals": "^13.19.0", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.2.1", |         "import-fresh": "^3.2.1", | ||||||
|         "js-yaml": "^4.1.0", |         "js-yaml": "^4.1.0", | ||||||
| @ -44,14 +43,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@humanwhocodes/config-array": { |     "node_modules/@humanwhocodes/config-array": { | ||||||
|       "version": "0.11.6", |       "version": "0.11.8", | ||||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", |       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", | ||||||
|       "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", |       "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@humanwhocodes/object-schema": "^1.2.1", |         "@humanwhocodes/object-schema": "^1.2.1", | ||||||
|         "debug": "^4.1.1", |         "debug": "^4.1.1", | ||||||
|         "minimatch": "^3.0.4" |         "minimatch": "^3.0.5" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=10.10.0" |         "node": ">=10.10.0" | ||||||
| @ -118,9 +117,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/@vercel/ncc": { |     "node_modules/@vercel/ncc": { | ||||||
|       "version": "0.34.0", |       "version": "0.36.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", |       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz", | ||||||
|       "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", |       "integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "ncc": "dist/ncc/cli.js" |         "ncc": "dist/ncc/cli.js" | ||||||
| @ -194,15 +193,15 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/array-includes": { |     "node_modules/array-includes": { | ||||||
|       "version": "3.1.5", |       "version": "3.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", |       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", | ||||||
|       "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", |       "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5", |         "es-abstract": "^1.20.4", | ||||||
|         "get-intrinsic": "^1.1.1", |         "get-intrinsic": "^1.1.3", | ||||||
|         "is-string": "^1.0.7" |         "is-string": "^1.0.7" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @ -213,14 +212,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/array.prototype.flat": { |     "node_modules/array.prototype.flat": { | ||||||
|       "version": "1.3.0", |       "version": "1.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", |       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", | ||||||
|       "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", |       "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.2", |         "es-abstract": "^1.20.4", | ||||||
|         "es-shim-unscopables": "^1.0.0" |         "es-shim-unscopables": "^1.0.0" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @ -385,9 +384,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/es-abstract": { |     "node_modules/es-abstract": { | ||||||
|       "version": "1.20.4", |       "version": "1.20.5", | ||||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", |       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", | ||||||
|       "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", |       "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
| @ -396,6 +395,7 @@ | |||||||
|         "function.prototype.name": "^1.1.5", |         "function.prototype.name": "^1.1.5", | ||||||
|         "get-intrinsic": "^1.1.3", |         "get-intrinsic": "^1.1.3", | ||||||
|         "get-symbol-description": "^1.0.0", |         "get-symbol-description": "^1.0.0", | ||||||
|  |         "gopd": "^1.0.1", | ||||||
|         "has": "^1.0.3", |         "has": "^1.0.3", | ||||||
|         "has-property-descriptors": "^1.0.0", |         "has-property-descriptors": "^1.0.0", | ||||||
|         "has-symbols": "^1.0.3", |         "has-symbols": "^1.0.3", | ||||||
| @ -411,8 +411,8 @@ | |||||||
|         "object.assign": "^4.1.4", |         "object.assign": "^4.1.4", | ||||||
|         "regexp.prototype.flags": "^1.4.3", |         "regexp.prototype.flags": "^1.4.3", | ||||||
|         "safe-regex-test": "^1.0.0", |         "safe-regex-test": "^1.0.0", | ||||||
|         "string.prototype.trimend": "^1.0.5", |         "string.prototype.trimend": "^1.0.6", | ||||||
|         "string.prototype.trimstart": "^1.0.5", |         "string.prototype.trimstart": "^1.0.6", | ||||||
|         "unbox-primitive": "^1.0.2" |         "unbox-primitive": "^1.0.2" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @ -461,13 +461,13 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/eslint": { |     "node_modules/eslint": { | ||||||
|       "version": "8.26.0", |       "version": "8.30.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", | ||||||
|       "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", |       "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@eslint/eslintrc": "^1.3.3", |         "@eslint/eslintrc": "^1.4.0", | ||||||
|         "@humanwhocodes/config-array": "^0.11.6", |         "@humanwhocodes/config-array": "^0.11.8", | ||||||
|         "@humanwhocodes/module-importer": "^1.0.1", |         "@humanwhocodes/module-importer": "^1.0.1", | ||||||
|         "@nodelib/fs.walk": "^1.2.8", |         "@nodelib/fs.walk": "^1.2.8", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
| @ -486,7 +486,7 @@ | |||||||
|         "file-entry-cache": "^6.0.1", |         "file-entry-cache": "^6.0.1", | ||||||
|         "find-up": "^5.0.0", |         "find-up": "^5.0.0", | ||||||
|         "glob-parent": "^6.0.2", |         "glob-parent": "^6.0.2", | ||||||
|         "globals": "^13.15.0", |         "globals": "^13.19.0", | ||||||
|         "grapheme-splitter": "^1.0.4", |         "grapheme-splitter": "^1.0.4", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.0.0", |         "import-fresh": "^3.0.0", | ||||||
| @ -684,9 +684,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/espree": { |     "node_modules/espree": { | ||||||
|       "version": "9.4.0", |       "version": "9.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", |       "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", | ||||||
|       "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", |       "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "acorn": "^8.8.0", |         "acorn": "^8.8.0", | ||||||
| @ -761,9 +761,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/fastq": { |     "node_modules/fastq": { | ||||||
|       "version": "1.13.0", |       "version": "1.14.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", |       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", | ||||||
|       "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", |       "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "reusify": "^1.0.4" |         "reusify": "^1.0.4" | ||||||
| @ -918,9 +918,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/globals": { |     "node_modules/globals": { | ||||||
|       "version": "13.17.0", |       "version": "13.19.0", | ||||||
|       "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", |       "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", | ||||||
|       "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", |       "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "type-fest": "^0.20.2" |         "type-fest": "^0.20.2" | ||||||
| @ -932,6 +932,18 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "url": "https://github.com/sponsors/sindresorhus" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/gopd": { | ||||||
|  |       "version": "1.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", | ||||||
|  |       "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", | ||||||
|  |       "dev": true, | ||||||
|  |       "dependencies": { | ||||||
|  |         "get-intrinsic": "^1.1.3" | ||||||
|  |       }, | ||||||
|  |       "funding": { | ||||||
|  |         "url": "https://github.com/sponsors/ljharb" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/grapheme-splitter": { |     "node_modules/grapheme-splitter": { | ||||||
|       "version": "1.0.4", |       "version": "1.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", | ||||||
| @ -1008,9 +1020,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/ignore": { |     "node_modules/ignore": { | ||||||
|       "version": "5.2.0", |       "version": "5.2.4", | ||||||
|       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", |       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", | ||||||
|       "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", |       "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 4" |         "node": ">= 4" | ||||||
| @ -1058,12 +1070,12 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/internal-slot": { |     "node_modules/internal-slot": { | ||||||
|       "version": "1.0.3", |       "version": "1.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", |       "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", | ||||||
|       "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", |       "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "get-intrinsic": "^1.1.0", |         "get-intrinsic": "^1.1.3", | ||||||
|         "has": "^1.0.3", |         "has": "^1.0.3", | ||||||
|         "side-channel": "^1.0.4" |         "side-channel": "^1.0.4" | ||||||
|       }, |       }, | ||||||
| @ -1272,10 +1284,14 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/js-sdsl": { |     "node_modules/js-sdsl": { | ||||||
|       "version": "4.1.5", |       "version": "4.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", |       "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", | ||||||
|       "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", |       "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", | ||||||
|       "dev": true |       "dev": true, | ||||||
|  |       "funding": { | ||||||
|  |         "type": "opencollective", | ||||||
|  |         "url": "https://opencollective.com/js-sdsl" | ||||||
|  |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/js-yaml": { |     "node_modules/js-yaml": { | ||||||
|       "version": "4.1.0", |       "version": "4.1.0", | ||||||
| @ -1380,14 +1396,6 @@ | |||||||
|       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", |       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/node-cmd": { |  | ||||||
|       "version": "5.0.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-5.0.0.tgz", |  | ||||||
|       "integrity": "sha512-4sQTJmsS5uZKAPz/Df9fnIbmvOySfGdW+UreH4X5NcAOOpKjaE+K5wf4ehNBbZVPo0vQ36RkRnhhsXXJAT+Syw==", |  | ||||||
|       "engines": { |  | ||||||
|         "node": ">=6.4.0" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "node_modules/object-inspect": { |     "node_modules/object-inspect": { | ||||||
|       "version": "1.12.2", |       "version": "1.12.2", | ||||||
|       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", |       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", | ||||||
| @ -1425,28 +1433,28 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/object.entries": { |     "node_modules/object.entries": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", | ||||||
|       "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", |       "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.1" |         "es-abstract": "^1.20.4" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 0.4" |         "node": ">= 0.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/object.values": { |     "node_modules/object.values": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", | ||||||
|       "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", |       "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.1" |         "es-abstract": "^1.20.4" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">= 0.4" |         "node": ">= 0.4" | ||||||
| @ -1764,28 +1772,28 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/string.prototype.trimend": { |     "node_modules/string.prototype.trimend": { | ||||||
|       "version": "1.0.5", |       "version": "1.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", |       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", | ||||||
|       "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", |       "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5" |         "es-abstract": "^1.20.4" | ||||||
|       }, |       }, | ||||||
|       "funding": { |       "funding": { | ||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/string.prototype.trimstart": { |     "node_modules/string.prototype.trimstart": { | ||||||
|       "version": "1.0.5", |       "version": "1.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", |       "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", | ||||||
|       "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", |       "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5" |         "es-abstract": "^1.20.4" | ||||||
|       }, |       }, | ||||||
|       "funding": { |       "funding": { | ||||||
|         "url": "https://github.com/sponsors/ljharb" |         "url": "https://github.com/sponsors/ljharb" | ||||||
| @ -1975,15 +1983,15 @@ | |||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@eslint/eslintrc": { |     "@eslint/eslintrc": { | ||||||
|       "version": "1.3.3", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", |       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz", | ||||||
|       "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", |       "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "ajv": "^6.12.4", |         "ajv": "^6.12.4", | ||||||
|         "debug": "^4.3.2", |         "debug": "^4.3.2", | ||||||
|         "espree": "^9.4.0", |         "espree": "^9.4.0", | ||||||
|         "globals": "^13.15.0", |         "globals": "^13.19.0", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.2.1", |         "import-fresh": "^3.2.1", | ||||||
|         "js-yaml": "^4.1.0", |         "js-yaml": "^4.1.0", | ||||||
| @ -1992,14 +2000,14 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@humanwhocodes/config-array": { |     "@humanwhocodes/config-array": { | ||||||
|       "version": "0.11.6", |       "version": "0.11.8", | ||||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", |       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", | ||||||
|       "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", |       "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@humanwhocodes/object-schema": "^1.2.1", |         "@humanwhocodes/object-schema": "^1.2.1", | ||||||
|         "debug": "^4.1.1", |         "debug": "^4.1.1", | ||||||
|         "minimatch": "^3.0.4" |         "minimatch": "^3.0.5" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@humanwhocodes/module-importer": { |     "@humanwhocodes/module-importer": { | ||||||
| @ -2047,9 +2055,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "@vercel/ncc": { |     "@vercel/ncc": { | ||||||
|       "version": "0.34.0", |       "version": "0.36.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz", |       "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz", | ||||||
|       "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==", |       "integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "acorn": { |     "acorn": { | ||||||
| @ -2099,27 +2107,27 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "array-includes": { |     "array-includes": { | ||||||
|       "version": "3.1.5", |       "version": "3.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", |       "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", | ||||||
|       "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", |       "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5", |         "es-abstract": "^1.20.4", | ||||||
|         "get-intrinsic": "^1.1.1", |         "get-intrinsic": "^1.1.3", | ||||||
|         "is-string": "^1.0.7" |         "is-string": "^1.0.7" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "array.prototype.flat": { |     "array.prototype.flat": { | ||||||
|       "version": "1.3.0", |       "version": "1.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", |       "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", | ||||||
|       "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", |       "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.2", |         "es-abstract": "^1.20.4", | ||||||
|         "es-shim-unscopables": "^1.0.0" |         "es-shim-unscopables": "^1.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @ -2243,9 +2251,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "es-abstract": { |     "es-abstract": { | ||||||
|       "version": "1.20.4", |       "version": "1.20.5", | ||||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", |       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", | ||||||
|       "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", |       "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
| @ -2254,6 +2262,7 @@ | |||||||
|         "function.prototype.name": "^1.1.5", |         "function.prototype.name": "^1.1.5", | ||||||
|         "get-intrinsic": "^1.1.3", |         "get-intrinsic": "^1.1.3", | ||||||
|         "get-symbol-description": "^1.0.0", |         "get-symbol-description": "^1.0.0", | ||||||
|  |         "gopd": "^1.0.1", | ||||||
|         "has": "^1.0.3", |         "has": "^1.0.3", | ||||||
|         "has-property-descriptors": "^1.0.0", |         "has-property-descriptors": "^1.0.0", | ||||||
|         "has-symbols": "^1.0.3", |         "has-symbols": "^1.0.3", | ||||||
| @ -2269,8 +2278,8 @@ | |||||||
|         "object.assign": "^4.1.4", |         "object.assign": "^4.1.4", | ||||||
|         "regexp.prototype.flags": "^1.4.3", |         "regexp.prototype.flags": "^1.4.3", | ||||||
|         "safe-regex-test": "^1.0.0", |         "safe-regex-test": "^1.0.0", | ||||||
|         "string.prototype.trimend": "^1.0.5", |         "string.prototype.trimend": "^1.0.6", | ||||||
|         "string.prototype.trimstart": "^1.0.5", |         "string.prototype.trimstart": "^1.0.6", | ||||||
|         "unbox-primitive": "^1.0.2" |         "unbox-primitive": "^1.0.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @ -2301,13 +2310,13 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "eslint": { |     "eslint": { | ||||||
|       "version": "8.26.0", |       "version": "8.30.0", | ||||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", |       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz", | ||||||
|       "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", |       "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@eslint/eslintrc": "^1.3.3", |         "@eslint/eslintrc": "^1.4.0", | ||||||
|         "@humanwhocodes/config-array": "^0.11.6", |         "@humanwhocodes/config-array": "^0.11.8", | ||||||
|         "@humanwhocodes/module-importer": "^1.0.1", |         "@humanwhocodes/module-importer": "^1.0.1", | ||||||
|         "@nodelib/fs.walk": "^1.2.8", |         "@nodelib/fs.walk": "^1.2.8", | ||||||
|         "ajv": "^6.10.0", |         "ajv": "^6.10.0", | ||||||
| @ -2326,7 +2335,7 @@ | |||||||
|         "file-entry-cache": "^6.0.1", |         "file-entry-cache": "^6.0.1", | ||||||
|         "find-up": "^5.0.0", |         "find-up": "^5.0.0", | ||||||
|         "glob-parent": "^6.0.2", |         "glob-parent": "^6.0.2", | ||||||
|         "globals": "^13.15.0", |         "globals": "^13.19.0", | ||||||
|         "grapheme-splitter": "^1.0.4", |         "grapheme-splitter": "^1.0.4", | ||||||
|         "ignore": "^5.2.0", |         "ignore": "^5.2.0", | ||||||
|         "import-fresh": "^3.0.0", |         "import-fresh": "^3.0.0", | ||||||
| @ -2481,9 +2490,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "espree": { |     "espree": { | ||||||
|       "version": "9.4.0", |       "version": "9.4.1", | ||||||
|       "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", |       "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", | ||||||
|       "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", |       "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "acorn": "^8.8.0", |         "acorn": "^8.8.0", | ||||||
| @ -2540,9 +2549,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "fastq": { |     "fastq": { | ||||||
|       "version": "1.13.0", |       "version": "1.14.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", |       "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", | ||||||
|       "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", |       "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "reusify": "^1.0.4" |         "reusify": "^1.0.4" | ||||||
| @ -2658,14 +2667,23 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "globals": { |     "globals": { | ||||||
|       "version": "13.17.0", |       "version": "13.19.0", | ||||||
|       "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", |       "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", | ||||||
|       "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", |       "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "type-fest": "^0.20.2" |         "type-fest": "^0.20.2" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "gopd": { | ||||||
|  |       "version": "1.0.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", | ||||||
|  |       "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", | ||||||
|  |       "dev": true, | ||||||
|  |       "requires": { | ||||||
|  |         "get-intrinsic": "^1.1.3" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "grapheme-splitter": { |     "grapheme-splitter": { | ||||||
|       "version": "1.0.4", |       "version": "1.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", |       "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", | ||||||
| @ -2718,9 +2736,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "ignore": { |     "ignore": { | ||||||
|       "version": "5.2.0", |       "version": "5.2.4", | ||||||
|       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", |       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", | ||||||
|       "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", |       "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "import-fresh": { |     "import-fresh": { | ||||||
| @ -2756,12 +2774,12 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "internal-slot": { |     "internal-slot": { | ||||||
|       "version": "1.0.3", |       "version": "1.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", |       "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", | ||||||
|       "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", |       "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "get-intrinsic": "^1.1.0", |         "get-intrinsic": "^1.1.3", | ||||||
|         "has": "^1.0.3", |         "has": "^1.0.3", | ||||||
|         "side-channel": "^1.0.4" |         "side-channel": "^1.0.4" | ||||||
|       } |       } | ||||||
| @ -2898,9 +2916,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "js-sdsl": { |     "js-sdsl": { | ||||||
|       "version": "4.1.5", |       "version": "4.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", |       "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", | ||||||
|       "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", |       "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "js-yaml": { |     "js-yaml": { | ||||||
| @ -2985,11 +3003,6 @@ | |||||||
|       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", |       "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node-cmd": { |  | ||||||
|       "version": "5.0.0", |  | ||||||
|       "resolved": "https://registry.npmjs.org/node-cmd/-/node-cmd-5.0.0.tgz", |  | ||||||
|       "integrity": "sha512-4sQTJmsS5uZKAPz/Df9fnIbmvOySfGdW+UreH4X5NcAOOpKjaE+K5wf4ehNBbZVPo0vQ36RkRnhhsXXJAT+Syw==" |  | ||||||
|     }, |  | ||||||
|     "object-inspect": { |     "object-inspect": { | ||||||
|       "version": "1.12.2", |       "version": "1.12.2", | ||||||
|       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", |       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", | ||||||
| @ -3015,25 +3028,25 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "object.entries": { |     "object.entries": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", | ||||||
|       "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", |       "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.1" |         "es-abstract": "^1.20.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "object.values": { |     "object.values": { | ||||||
|       "version": "1.1.5", |       "version": "1.1.6", | ||||||
|       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", |       "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", | ||||||
|       "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", |       "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.3", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.1" |         "es-abstract": "^1.20.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "once": { |     "once": { | ||||||
| @ -3235,25 +3248,25 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "string.prototype.trimend": { |     "string.prototype.trimend": { | ||||||
|       "version": "1.0.5", |       "version": "1.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", |       "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", | ||||||
|       "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", |       "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5" |         "es-abstract": "^1.20.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "string.prototype.trimstart": { |     "string.prototype.trimstart": { | ||||||
|       "version": "1.0.5", |       "version": "1.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", |       "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", | ||||||
|       "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", |       "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "requires": { |       "requires": { | ||||||
|         "call-bind": "^1.0.2", |         "call-bind": "^1.0.2", | ||||||
|         "define-properties": "^1.1.4", |         "define-properties": "^1.1.4", | ||||||
|         "es-abstract": "^1.19.5" |         "es-abstract": "^1.20.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "strip-ansi": { |     "strip-ansi": { | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								package.json
									
									
									
									
									
								
							| @ -9,11 +9,6 @@ | |||||||
|     "./README.md", |     "./README.md", | ||||||
|     "LICENSE" |     "LICENSE" | ||||||
|   ], |   ], | ||||||
|   "dependencies": { |  | ||||||
|     "command-exists": "^1.2.9", |  | ||||||
|     "node-cmd": "^5.0.0", |  | ||||||
|     "rsyncwrapper": "^3.0.1" |  | ||||||
|   }, |  | ||||||
|   "scripts": { |   "scripts": { | ||||||
|     "build": "npm run lint && ncc build ./src/index.js -o dist -m", |     "build": "npm run lint && ncc build ./src/index.js -o dist -m", | ||||||
|     "lint": "eslint ./src/index.js", |     "lint": "eslint ./src/index.js", | ||||||
| @ -34,9 +29,13 @@ | |||||||
|     "url": "https://github.com/easingthemes/ssh-deploy/issues" |     "url": "https://github.com/easingthemes/ssh-deploy/issues" | ||||||
|   }, |   }, | ||||||
|   "homepage": "https://github.com/easingthemes/ssh-deploy#readme", |   "homepage": "https://github.com/easingthemes/ssh-deploy#readme", | ||||||
|  |   "dependencies": { | ||||||
|  |     "command-exists": "^1.2.9", | ||||||
|  |     "rsyncwrapper": "^3.0.1" | ||||||
|  |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@vercel/ncc": "^0.34.0", |     "@vercel/ncc": "^0.36.0", | ||||||
|     "eslint": "^8.26.0", |     "eslint": "^8.30.0", | ||||||
|     "eslint-config-airbnb-base": "^15.0.0", |     "eslint-config-airbnb-base": "^15.0.0", | ||||||
|     "eslint-plugin-import": "^2.26.0" |     "eslint-plugin-import": "^2.26.0" | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -17,7 +17,10 @@ const defaultOptions = { | |||||||
|   recursive: true |   recursive: true | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| console.log('[general] GITHUB_WORKSPACE: ', GITHUB_WORKSPACE); | console.log('GITHUB_WORKSPACE: ', GITHUB_WORKSPACE); | ||||||
|  | console.log('REMOTE_HOST: ', process.env.REMOTE_HOST); | ||||||
|  | console.log('REMOTE_USER: ', process.env.REMOTE_USER); | ||||||
|  | console.log('SSH_PRIVATE_KEY: ', process.env.SSH_PRIVATE_KEY); | ||||||
| 
 | 
 | ||||||
| const sshDeploy = (() => { | const sshDeploy = (() => { | ||||||
|   const rsync = ({ privateKey, port, src, dest, args, exclude }) => { |   const rsync = ({ privateKey, port, src, dest, args, exclude }) => { | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KE | |||||||
| const inputs = { | const inputs = { | ||||||
|   GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE |   GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE | ||||||
| }; | }; | ||||||
| // Get inputs from ENV or WITH workflow settings
 | 
 | ||||||
| inputNames.forEach((input) => { | inputNames.forEach((input) => { | ||||||
|   inputs[input] = process.env[input] || process.env[`INPUT_${input}`]; |   inputs[input] = process.env[input] || process.env[`INPUT_${input}`]; | ||||||
| }); | }); | ||||||
|  | |||||||
| @ -1,25 +1,25 @@ | |||||||
| const { sync: commandExists } = require('command-exists'); | const { sync: commandExists } = require("command-exists"); | ||||||
| const { get: nodeCmd } = require('node-cmd'); | const { exec, execSync } = require("child_process"); | ||||||
| 
 | 
 | ||||||
| const validateRsync = (callback = () => {}) => { | const validateRsync = (callback = () => {}) => { | ||||||
|   const rsyncCli = commandExists('rsync'); |   const rsyncCli = commandExists("rsync"); | ||||||
| 
 |   if (rsyncCli) { | ||||||
|   if (!rsyncCli) { |     console.log('⚠️ [CLI] Rsync exists'); | ||||||
|     nodeCmd( |     const rsyncVersion = execSync("rsync --version", { stdio: 'inherit' }); | ||||||
|       'sudo apt-get --no-install-recommends install rsync', |     return callback(); | ||||||
|       (err, data, stderr) => { |  | ||||||
|         if (err) { |  | ||||||
|           console.log('⚠️ [CLI] Rsync installation failed. Aborting ... ', err.message); |  | ||||||
|           process.abort(); |  | ||||||
|         } else { |  | ||||||
|           console.log('✅ [CLI] Rsync installed. \n', data, stderr); |  | ||||||
|           callback(); |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     ); |  | ||||||
|   } else { |  | ||||||
|     callback(); |  | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   console.log('⚠️ [CLI] Rsync doesn\'t exists. Start installation with "apt-get" \n'); | ||||||
|  | 
 | ||||||
|  |   exec("sudo apt-get update && sudo apt-get --no-install-recommends install rsync", (err, data, stderr) => { | ||||||
|  |     if (err) { | ||||||
|  |       console.log("⚠️ [CLI] Rsync installation failed. Aborting ... ", err.message); | ||||||
|  |       process.abort(); | ||||||
|  |     } else { | ||||||
|  |       console.log("✅ [CLI] Rsync installed. \n", data, stderr); | ||||||
|  |       callback(); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const validateInputs = (inputs) => { | const validateInputs = (inputs) => { | ||||||
| @ -35,12 +35,12 @@ const validateInputs = (inputs) => { | |||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
|   if (validInputs.length !== inputKeys.length) { |   if (validInputs.length !== inputKeys.length) { | ||||||
|     console.error('⚠️ [INPUTS] Inputs not valid, aborting ...'); |     console.error("⚠️ [INPUTS] Inputs not valid, aborting ..."); | ||||||
|     process.abort(); |     process.abort(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
|   validateRsync, |   validateRsync, | ||||||
|   validateInputs |   validateInputs, | ||||||
| }; | }; | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								src/test.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/test.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | console.log('||||||||||||||||||||||||||||||||||||||'); | ||||||
|  | console.log('EXAMPLE_REMOTE_HOST: ', process.env.EXAMPLE_REMOTE_HOST); | ||||||
|  | console.log('EXAMPLE_REMOTE_USER: ', process.env.EXAMPLE_REMOTE_USER); | ||||||
|  | console.log('EXAMPLE_SSH_PRIVATE_KEY: ', process.env.EXAMPLE_SSH_PRIVATE_KEY); | ||||||
|  | console.log('||||||||||||||||||||||||||||||||||||||'); | ||||||
|  | console.log('EXAMPLE_REMOTE_HOST1: ', process.env.EXAMPLE_REMOTE_HOST1); | ||||||
|  | console.log('EXAMPLE_REMOTE_USER1: ', process.env.EXAMPLE_REMOTE_USER1); | ||||||
|  | console.log('EXAMPLE_SSH_PRIVATE_KEY1: ', process.env.EXAMPLE_SSH_PRIVATE_KEY1); | ||||||
|  | console.log('||||||||||||||||||||||||||||||||||||||'); | ||||||
|  | console.log('REMOTE_USER: ', process.env.REMOTE_USER); | ||||||
|  | console.log('REMOTE_HOST: ', process.env.REMOTE_HOST); | ||||||
|  | console.log('SSH_PRIVATE_KEY: ', process.env.SSH_PRIVATE_KEY); | ||||||
|  | console.log('||||||||||||||||||||||||||||||||||||||'); | ||||||
							
								
								
									
										5
									
								
								test/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								test/.dockerignore
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | |||||||
|  | /node_modules | ||||||
|  | .gitignore | ||||||
|  | .gitattributes | ||||||
|  | LICENSE | ||||||
|  | README.md | ||||||
							
								
								
									
										33
									
								
								test/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								test/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,33 @@ | |||||||
|  | FROM nginx | ||||||
|  | 
 | ||||||
|  | ARG SSH_PUB_KEY | ||||||
|  | 
 | ||||||
|  | RUN apt update | ||||||
|  | 
 | ||||||
|  | RUN apt install openssh-server rsync sudo -y | ||||||
|  | 
 | ||||||
|  | RUN useradd -rm -d /home/test -s /bin/bash -g root -G sudo -u 1000 test | ||||||
|  | 
 | ||||||
|  | RUN usermod -aG sudo test | ||||||
|  | 
 | ||||||
|  | RUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config.d/pub.conf | ||||||
|  | RUN echo "AuthorizedKeysFile  .ssh/authorized_keys" >> /etc/ssh/sshd_config.d/pub.conf | ||||||
|  | 
 | ||||||
|  | RUN mkdir -p /var/www/html | ||||||
|  | RUN chown -R test /var/www/html | ||||||
|  | RUN mkdir -p /home/test/.ssh | ||||||
|  | RUN echo "$SSH_PUB_KEY" > /home/test/.ssh/authorized_keys | ||||||
|  | RUN chmod 700 /home/test/.ssh | ||||||
|  | RUN chown -R test /home/test/.ssh | ||||||
|  | 
 | ||||||
|  | RUN service ssh start | ||||||
|  | 
 | ||||||
|  | RUN  echo 'test:test' | chpasswd | ||||||
|  | 
 | ||||||
|  | EXPOSE 22 | ||||||
|  | 
 | ||||||
|  | ADD entrypoint.sh /docker-entrypoint.d/entrypoint.sh | ||||||
|  | RUN chmod +x /docker-entrypoint.d/entrypoint.sh | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | CMD ["nginx", "-g", "daemon off;"] | ||||||
							
								
								
									
										3
									
								
								test/entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								test/entrypoint.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,3 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | 
 | ||||||
|  | /usr/sbin/sshd -D | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Dragan Filipović
						Dragan Filipović