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
 | 
			
		||||
.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",
 | 
			
		||||
  "version": "2.2.11",
 | 
			
		||||
  "version": "3.0.1",
 | 
			
		||||
  "lockfileVersion": 2,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "packages": {
 | 
			
		||||
    "": {
 | 
			
		||||
      "name": "@draganfilipovic/ssh-deploy",
 | 
			
		||||
      "version": "2.2.11",
 | 
			
		||||
      "version": "3.0.1",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "command-exists": "^1.2.9",
 | 
			
		||||
        "node-cmd": "^5.0.0",
 | 
			
		||||
        "rsyncwrapper": "^3.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
        "@vercel/ncc": "^0.34.0",
 | 
			
		||||
        "eslint": "^8.26.0",
 | 
			
		||||
        "@vercel/ncc": "^0.36.0",
 | 
			
		||||
        "eslint": "^8.30.0",
 | 
			
		||||
        "eslint-config-airbnb-base": "^15.0.0",
 | 
			
		||||
        "eslint-plugin-import": "^2.26.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@eslint/eslintrc": {
 | 
			
		||||
      "version": "1.3.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
 | 
			
		||||
      "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
 | 
			
		||||
      "version": "1.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "ajv": "^6.12.4",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "espree": "^9.4.0",
 | 
			
		||||
        "globals": "^13.15.0",
 | 
			
		||||
        "globals": "^13.19.0",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.2.1",
 | 
			
		||||
        "js-yaml": "^4.1.0",
 | 
			
		||||
@ -44,14 +43,14 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@humanwhocodes/config-array": {
 | 
			
		||||
      "version": "0.11.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
 | 
			
		||||
      "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
 | 
			
		||||
      "version": "0.11.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
 | 
			
		||||
      "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@humanwhocodes/object-schema": "^1.2.1",
 | 
			
		||||
        "debug": "^4.1.1",
 | 
			
		||||
        "minimatch": "^3.0.4"
 | 
			
		||||
        "minimatch": "^3.0.5"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">=10.10.0"
 | 
			
		||||
@ -118,9 +117,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@vercel/ncc": {
 | 
			
		||||
      "version": "0.34.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
 | 
			
		||||
      "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
 | 
			
		||||
      "version": "0.36.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz",
 | 
			
		||||
      "integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "bin": {
 | 
			
		||||
        "ncc": "dist/ncc/cli.js"
 | 
			
		||||
@ -194,15 +193,15 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/array-includes": {
 | 
			
		||||
      "version": "3.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
 | 
			
		||||
      "version": "3.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5",
 | 
			
		||||
        "get-intrinsic": "^1.1.1",
 | 
			
		||||
        "es-abstract": "^1.20.4",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "is-string": "^1.0.7"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
@ -213,14 +212,14 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/array.prototype.flat": {
 | 
			
		||||
      "version": "1.3.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
 | 
			
		||||
      "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
 | 
			
		||||
      "version": "1.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
 | 
			
		||||
      "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4",
 | 
			
		||||
        "es-shim-unscopables": "^1.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
@ -385,9 +384,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/es-abstract": {
 | 
			
		||||
      "version": "1.20.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
 | 
			
		||||
      "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
 | 
			
		||||
      "version": "1.20.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
 | 
			
		||||
      "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
@ -396,6 +395,7 @@
 | 
			
		||||
        "function.prototype.name": "^1.1.5",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "get-symbol-description": "^1.0.0",
 | 
			
		||||
        "gopd": "^1.0.1",
 | 
			
		||||
        "has": "^1.0.3",
 | 
			
		||||
        "has-property-descriptors": "^1.0.0",
 | 
			
		||||
        "has-symbols": "^1.0.3",
 | 
			
		||||
@ -411,8 +411,8 @@
 | 
			
		||||
        "object.assign": "^4.1.4",
 | 
			
		||||
        "regexp.prototype.flags": "^1.4.3",
 | 
			
		||||
        "safe-regex-test": "^1.0.0",
 | 
			
		||||
        "string.prototype.trimend": "^1.0.5",
 | 
			
		||||
        "string.prototype.trimstart": "^1.0.5",
 | 
			
		||||
        "string.prototype.trimend": "^1.0.6",
 | 
			
		||||
        "string.prototype.trimstart": "^1.0.6",
 | 
			
		||||
        "unbox-primitive": "^1.0.2"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
@ -461,13 +461,13 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/eslint": {
 | 
			
		||||
      "version": "8.26.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
 | 
			
		||||
      "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
 | 
			
		||||
      "version": "8.30.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
 | 
			
		||||
      "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@eslint/eslintrc": "^1.3.3",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.11.6",
 | 
			
		||||
        "@eslint/eslintrc": "^1.4.0",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.11.8",
 | 
			
		||||
        "@humanwhocodes/module-importer": "^1.0.1",
 | 
			
		||||
        "@nodelib/fs.walk": "^1.2.8",
 | 
			
		||||
        "ajv": "^6.10.0",
 | 
			
		||||
@ -486,7 +486,7 @@
 | 
			
		||||
        "file-entry-cache": "^6.0.1",
 | 
			
		||||
        "find-up": "^5.0.0",
 | 
			
		||||
        "glob-parent": "^6.0.2",
 | 
			
		||||
        "globals": "^13.15.0",
 | 
			
		||||
        "globals": "^13.19.0",
 | 
			
		||||
        "grapheme-splitter": "^1.0.4",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.0.0",
 | 
			
		||||
@ -684,9 +684,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/espree": {
 | 
			
		||||
      "version": "9.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
 | 
			
		||||
      "version": "9.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "acorn": "^8.8.0",
 | 
			
		||||
@ -761,9 +761,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/fastq": {
 | 
			
		||||
      "version": "1.13.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
 | 
			
		||||
      "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
 | 
			
		||||
      "version": "1.14.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
 | 
			
		||||
      "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "reusify": "^1.0.4"
 | 
			
		||||
@ -918,9 +918,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/globals": {
 | 
			
		||||
      "version": "13.17.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
 | 
			
		||||
      "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
 | 
			
		||||
      "version": "13.19.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
 | 
			
		||||
      "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "type-fest": "^0.20.2"
 | 
			
		||||
@ -932,6 +932,18 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
 | 
			
		||||
@ -1008,9 +1020,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/ignore": {
 | 
			
		||||
      "version": "5.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
 | 
			
		||||
      "version": "5.2.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
 | 
			
		||||
      "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 4"
 | 
			
		||||
@ -1058,12 +1070,12 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/internal-slot": {
 | 
			
		||||
      "version": "1.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "get-intrinsic": "^1.1.0",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "has": "^1.0.3",
 | 
			
		||||
        "side-channel": "^1.0.4"
 | 
			
		||||
      },
 | 
			
		||||
@ -1272,10 +1284,14 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/js-sdsl": {
 | 
			
		||||
      "version": "4.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
      "version": "4.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "type": "opencollective",
 | 
			
		||||
        "url": "https://opencollective.com/js-sdsl"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/js-yaml": {
 | 
			
		||||
      "version": "4.1.0",
 | 
			
		||||
@ -1380,14 +1396,6 @@
 | 
			
		||||
      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
 | 
			
		||||
      "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": {
 | 
			
		||||
      "version": "1.12.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
 | 
			
		||||
@ -1425,28 +1433,28 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/object.entries": {
 | 
			
		||||
      "version": "1.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.1"
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/object.values": {
 | 
			
		||||
      "version": "1.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.1"
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= 0.4"
 | 
			
		||||
@ -1764,28 +1772,28 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/string.prototype.trimend": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5"
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/string.prototype.trimstart": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5"
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      },
 | 
			
		||||
      "funding": {
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
@ -1975,15 +1983,15 @@
 | 
			
		||||
  },
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@eslint/eslintrc": {
 | 
			
		||||
      "version": "1.3.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz",
 | 
			
		||||
      "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==",
 | 
			
		||||
      "version": "1.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "ajv": "^6.12.4",
 | 
			
		||||
        "debug": "^4.3.2",
 | 
			
		||||
        "espree": "^9.4.0",
 | 
			
		||||
        "globals": "^13.15.0",
 | 
			
		||||
        "globals": "^13.19.0",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.2.1",
 | 
			
		||||
        "js-yaml": "^4.1.0",
 | 
			
		||||
@ -1992,14 +2000,14 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@humanwhocodes/config-array": {
 | 
			
		||||
      "version": "0.11.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz",
 | 
			
		||||
      "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==",
 | 
			
		||||
      "version": "0.11.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
 | 
			
		||||
      "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@humanwhocodes/object-schema": "^1.2.1",
 | 
			
		||||
        "debug": "^4.1.1",
 | 
			
		||||
        "minimatch": "^3.0.4"
 | 
			
		||||
        "minimatch": "^3.0.5"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "@humanwhocodes/module-importer": {
 | 
			
		||||
@ -2047,9 +2055,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "@vercel/ncc": {
 | 
			
		||||
      "version": "0.34.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.34.0.tgz",
 | 
			
		||||
      "integrity": "sha512-G9h5ZLBJ/V57Ou9vz5hI8pda/YQX5HQszCs3AmIus3XzsmRn/0Ptic5otD3xVST8QLKk7AMk7AqpsyQGN7MZ9A==",
 | 
			
		||||
      "version": "0.36.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.36.0.tgz",
 | 
			
		||||
      "integrity": "sha512-/ZTUJ/ZkRt694k7KJNimgmHjtQcRuVwsST2Z6XfYveQIuBbHR+EqkTc1jfgPkQmMyk/vtpxo3nVxe8CNuau86A==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "acorn": {
 | 
			
		||||
@ -2099,27 +2107,27 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "array-includes": {
 | 
			
		||||
      "version": "3.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
 | 
			
		||||
      "version": "3.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5",
 | 
			
		||||
        "get-intrinsic": "^1.1.1",
 | 
			
		||||
        "es-abstract": "^1.20.4",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "is-string": "^1.0.7"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "array.prototype.flat": {
 | 
			
		||||
      "version": "1.3.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
 | 
			
		||||
      "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
 | 
			
		||||
      "version": "1.3.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz",
 | 
			
		||||
      "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4",
 | 
			
		||||
        "es-shim-unscopables": "^1.0.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -2243,9 +2251,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "es-abstract": {
 | 
			
		||||
      "version": "1.20.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz",
 | 
			
		||||
      "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==",
 | 
			
		||||
      "version": "1.20.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz",
 | 
			
		||||
      "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
@ -2254,6 +2262,7 @@
 | 
			
		||||
        "function.prototype.name": "^1.1.5",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "get-symbol-description": "^1.0.0",
 | 
			
		||||
        "gopd": "^1.0.1",
 | 
			
		||||
        "has": "^1.0.3",
 | 
			
		||||
        "has-property-descriptors": "^1.0.0",
 | 
			
		||||
        "has-symbols": "^1.0.3",
 | 
			
		||||
@ -2269,8 +2278,8 @@
 | 
			
		||||
        "object.assign": "^4.1.4",
 | 
			
		||||
        "regexp.prototype.flags": "^1.4.3",
 | 
			
		||||
        "safe-regex-test": "^1.0.0",
 | 
			
		||||
        "string.prototype.trimend": "^1.0.5",
 | 
			
		||||
        "string.prototype.trimstart": "^1.0.5",
 | 
			
		||||
        "string.prototype.trimend": "^1.0.6",
 | 
			
		||||
        "string.prototype.trimstart": "^1.0.6",
 | 
			
		||||
        "unbox-primitive": "^1.0.2"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
@ -2301,13 +2310,13 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "eslint": {
 | 
			
		||||
      "version": "8.26.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz",
 | 
			
		||||
      "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==",
 | 
			
		||||
      "version": "8.30.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.30.0.tgz",
 | 
			
		||||
      "integrity": "sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "@eslint/eslintrc": "^1.3.3",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.11.6",
 | 
			
		||||
        "@eslint/eslintrc": "^1.4.0",
 | 
			
		||||
        "@humanwhocodes/config-array": "^0.11.8",
 | 
			
		||||
        "@humanwhocodes/module-importer": "^1.0.1",
 | 
			
		||||
        "@nodelib/fs.walk": "^1.2.8",
 | 
			
		||||
        "ajv": "^6.10.0",
 | 
			
		||||
@ -2326,7 +2335,7 @@
 | 
			
		||||
        "file-entry-cache": "^6.0.1",
 | 
			
		||||
        "find-up": "^5.0.0",
 | 
			
		||||
        "glob-parent": "^6.0.2",
 | 
			
		||||
        "globals": "^13.15.0",
 | 
			
		||||
        "globals": "^13.19.0",
 | 
			
		||||
        "grapheme-splitter": "^1.0.4",
 | 
			
		||||
        "ignore": "^5.2.0",
 | 
			
		||||
        "import-fresh": "^3.0.0",
 | 
			
		||||
@ -2481,9 +2490,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "espree": {
 | 
			
		||||
      "version": "9.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
 | 
			
		||||
      "version": "9.4.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz",
 | 
			
		||||
      "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "acorn": "^8.8.0",
 | 
			
		||||
@ -2540,9 +2549,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "fastq": {
 | 
			
		||||
      "version": "1.13.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
 | 
			
		||||
      "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
 | 
			
		||||
      "version": "1.14.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz",
 | 
			
		||||
      "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "reusify": "^1.0.4"
 | 
			
		||||
@ -2658,14 +2667,23 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "globals": {
 | 
			
		||||
      "version": "13.17.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz",
 | 
			
		||||
      "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==",
 | 
			
		||||
      "version": "13.19.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
 | 
			
		||||
      "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "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": {
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
 | 
			
		||||
@ -2718,9 +2736,9 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "ignore": {
 | 
			
		||||
      "version": "5.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
 | 
			
		||||
      "version": "5.2.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
 | 
			
		||||
      "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "import-fresh": {
 | 
			
		||||
@ -2756,12 +2774,12 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "internal-slot": {
 | 
			
		||||
      "version": "1.0.3",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
 | 
			
		||||
      "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
 | 
			
		||||
      "version": "1.0.4",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
 | 
			
		||||
      "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "get-intrinsic": "^1.1.0",
 | 
			
		||||
        "get-intrinsic": "^1.1.3",
 | 
			
		||||
        "has": "^1.0.3",
 | 
			
		||||
        "side-channel": "^1.0.4"
 | 
			
		||||
      }
 | 
			
		||||
@ -2898,9 +2916,9 @@
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "js-sdsl": {
 | 
			
		||||
      "version": "4.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==",
 | 
			
		||||
      "version": "4.2.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
 | 
			
		||||
      "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
 | 
			
		||||
      "dev": true
 | 
			
		||||
    },
 | 
			
		||||
    "js-yaml": {
 | 
			
		||||
@ -2985,11 +3003,6 @@
 | 
			
		||||
      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
 | 
			
		||||
      "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": {
 | 
			
		||||
      "version": "1.12.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
 | 
			
		||||
@ -3015,25 +3028,25 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "object.entries": {
 | 
			
		||||
      "version": "1.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==",
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.1"
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "object.values": {
 | 
			
		||||
      "version": "1.1.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
 | 
			
		||||
      "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
 | 
			
		||||
      "version": "1.1.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz",
 | 
			
		||||
      "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.3",
 | 
			
		||||
        "es-abstract": "^1.19.1"
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "once": {
 | 
			
		||||
@ -3235,25 +3248,25 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "string.prototype.trimend": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5"
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "string.prototype.trimstart": {
 | 
			
		||||
      "version": "1.0.5",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
 | 
			
		||||
      "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
 | 
			
		||||
      "version": "1.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "requires": {
 | 
			
		||||
        "call-bind": "^1.0.2",
 | 
			
		||||
        "define-properties": "^1.1.4",
 | 
			
		||||
        "es-abstract": "^1.19.5"
 | 
			
		||||
        "es-abstract": "^1.20.4"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "strip-ansi": {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										13
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								package.json
									
									
									
									
									
								
							@ -9,11 +9,6 @@
 | 
			
		||||
    "./README.md",
 | 
			
		||||
    "LICENSE"
 | 
			
		||||
  ],
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "command-exists": "^1.2.9",
 | 
			
		||||
    "node-cmd": "^5.0.0",
 | 
			
		||||
    "rsyncwrapper": "^3.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "build": "npm run lint && ncc build ./src/index.js -o dist -m",
 | 
			
		||||
    "lint": "eslint ./src/index.js",
 | 
			
		||||
@ -34,9 +29,13 @@
 | 
			
		||||
    "url": "https://github.com/easingthemes/ssh-deploy/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://github.com/easingthemes/ssh-deploy#readme",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "command-exists": "^1.2.9",
 | 
			
		||||
    "rsyncwrapper": "^3.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@vercel/ncc": "^0.34.0",
 | 
			
		||||
    "eslint": "^8.26.0",
 | 
			
		||||
    "@vercel/ncc": "^0.36.0",
 | 
			
		||||
    "eslint": "^8.30.0",
 | 
			
		||||
    "eslint-config-airbnb-base": "^15.0.0",
 | 
			
		||||
    "eslint-plugin-import": "^2.26.0"
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
@ -17,7 +17,10 @@ const defaultOptions = {
 | 
			
		||||
  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 rsync = ({ privateKey, port, src, dest, args, exclude }) => {
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ const inputNames = ['REMOTE_HOST', 'REMOTE_USER', 'REMOTE_PORT', 'SSH_PRIVATE_KE
 | 
			
		||||
const inputs = {
 | 
			
		||||
  GITHUB_WORKSPACE: process.env.GITHUB_WORKSPACE
 | 
			
		||||
};
 | 
			
		||||
// Get inputs from ENV or WITH workflow settings
 | 
			
		||||
 | 
			
		||||
inputNames.forEach((input) => {
 | 
			
		||||
  inputs[input] = process.env[input] || process.env[`INPUT_${input}`];
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
@ -1,25 +1,25 @@
 | 
			
		||||
const { sync: commandExists } = require('command-exists');
 | 
			
		||||
const { get: nodeCmd } = require('node-cmd');
 | 
			
		||||
const { sync: commandExists } = require("command-exists");
 | 
			
		||||
const { exec, execSync } = require("child_process");
 | 
			
		||||
 | 
			
		||||
const validateRsync = (callback = () => {}) => {
 | 
			
		||||
  const rsyncCli = commandExists('rsync');
 | 
			
		||||
 | 
			
		||||
  if (!rsyncCli) {
 | 
			
		||||
    nodeCmd(
 | 
			
		||||
      '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();
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
  } else {
 | 
			
		||||
    callback();
 | 
			
		||||
  const rsyncCli = commandExists("rsync");
 | 
			
		||||
  if (rsyncCli) {
 | 
			
		||||
    console.log('⚠️ [CLI] Rsync exists');
 | 
			
		||||
    const rsyncVersion = execSync("rsync --version", { stdio: 'inherit' });
 | 
			
		||||
    return 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) => {
 | 
			
		||||
@ -35,12 +35,12 @@ const validateInputs = (inputs) => {
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  if (validInputs.length !== inputKeys.length) {
 | 
			
		||||
    console.error('⚠️ [INPUTS] Inputs not valid, aborting ...');
 | 
			
		||||
    console.error("⚠️ [INPUTS] Inputs not valid, aborting ...");
 | 
			
		||||
    process.abort();
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user