forked from waja/action-debian-package
		
	rewrite in javascript
This commit is contained in:
		
							parent
							
								
									b27c1f0ddb
								
							
						
					
					
						commit
						9feac88483
					
				
					 43 changed files with 2589 additions and 73 deletions
				
			
		| 
						 | 
					@ -1,7 +0,0 @@
 | 
				
			||||||
FROM docker
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN apk -U add dpkg-dev
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
COPY main.sh /
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ENTRYPOINT ["/main.sh"]
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
# Build Debian package Github Action
 | 
					# Build Debian package Github Action
 | 
				
			||||||
 | 
					
 | 
				
			||||||
An action that builds a Debian package from source for specified distribution.
 | 
					An action that builds a Debian package from source.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Usage
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,6 +8,6 @@ An action that builds a Debian package from source for specified distribution.
 | 
				
			||||||
- name: Build Debian package
 | 
					- name: Build Debian package
 | 
				
			||||||
  uses: dawidd6/action-debian-package@master
 | 
					  uses: dawidd6/action-debian-package@master
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    directory: lolcat # relative to PWD, defaults to PWD
 | 
					    directory: lolcat # optional, relative to workspace directory
 | 
				
			||||||
    os: debian # or ubuntu, defaults to debian
 | 
					    os: debian # or ubuntu, defaults to debian
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								action.yml
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								action.yml
									
										
									
									
									
								
							| 
						 | 
					@ -5,11 +5,13 @@ branding:
 | 
				
			||||||
  icon: package
 | 
					  icon: package
 | 
				
			||||||
inputs:
 | 
					inputs:
 | 
				
			||||||
  directory:
 | 
					  directory:
 | 
				
			||||||
    description: Directory where Debianized sources live (defaults to current)
 | 
					    description: Directory where Debian sources are, relative to workspace
 | 
				
			||||||
    required: false
 | 
					    required: false
 | 
				
			||||||
 | 
					    default: ./
 | 
				
			||||||
  os:
 | 
					  os:
 | 
				
			||||||
    description: '"ubuntu" or "debian" (defaults to "debian")'
 | 
					    description: '"ubuntu" or "debian"'
 | 
				
			||||||
    required: false
 | 
					    required: false
 | 
				
			||||||
 | 
					    default: debian
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: docker
 | 
					  using: node12
 | 
				
			||||||
  image: Dockerfile
 | 
					  main: main.js
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										77
									
								
								main.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								main.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,77 @@
 | 
				
			||||||
 | 
					const path = require("path")
 | 
				
			||||||
 | 
					const core = require("@actions/core")
 | 
				
			||||||
 | 
					const exec = require("@actions/exec")
 | 
				
			||||||
 | 
					const firstline = require("firstline")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function main() {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        const directory = core.getInput("directory", { required: true })
 | 
				
			||||||
 | 
					        const os = core.getInput("os", { required: true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const directoryRunner = path.join(process.cwd(), directory)
 | 
				
			||||||
 | 
					        const directoryContainer = "/build/source"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        const file = path.join(directoryRunner, "debian/changelog")
 | 
				
			||||||
 | 
					        const changelog = await firstline(file)
 | 
				
			||||||
 | 
					        const regex = /^(?<package>.+) \((?<version>.+)\) (?<distribution>.+); (?<options>.+)$/
 | 
				
			||||||
 | 
					        const match = changelog.match(regex)
 | 
				
			||||||
 | 
					        const { package, version, distribution } = match.groups
 | 
				
			||||||
 | 
					        const container = package + "_" + version
 | 
				
			||||||
 | 
					        const image = os + ":" + distribution.replace("UNRELEASED", "unstable")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Create container")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "create",
 | 
				
			||||||
 | 
					            "--name", container,
 | 
				
			||||||
 | 
					            "--volume", directoryRunner + ":" + directoryContainer,
 | 
				
			||||||
 | 
					            "--workdir", directoryContainer,
 | 
				
			||||||
 | 
					            "--tty",
 | 
				
			||||||
 | 
					            image,
 | 
				
			||||||
 | 
					            "sleep", "inf"
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Start container")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "start",
 | 
				
			||||||
 | 
					            container
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Update packages list")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "exec",
 | 
				
			||||||
 | 
					            container,
 | 
				
			||||||
 | 
					            "apt-get", "update"
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Install development packages")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "exec",
 | 
				
			||||||
 | 
					            container,
 | 
				
			||||||
 | 
					            "apt-get", "install", "-y", "dpkg-dev", "debhelper"
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Install build dependencies")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "exec",
 | 
				
			||||||
 | 
					            container,
 | 
				
			||||||
 | 
					            "apt-get", "build-dep", "-y", directoryContainer
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        core.startGroup("Build package")
 | 
				
			||||||
 | 
					        await exec.exec("docker", [
 | 
				
			||||||
 | 
					            "exec",
 | 
				
			||||||
 | 
					            container,
 | 
				
			||||||
 | 
					            "dpkg-buildpackage", "-S", "-us", "-uc"
 | 
				
			||||||
 | 
					        ])
 | 
				
			||||||
 | 
					        core.endGroup()
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					        core.setFailed(error.message)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					main()
 | 
				
			||||||
							
								
								
									
										60
									
								
								main.sh
									
										
									
									
									
								
							
							
						
						
									
										60
									
								
								main.sh
									
										
									
									
									
								
							| 
						 | 
					@ -1,60 +0,0 @@
 | 
				
			||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -eu
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
directory="${INPUT_DIRECTORY:-}"
 | 
					 | 
				
			||||||
os="${INPUT_OS:-"debian"}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
directory_runner="$RUNNER_WORKSPACE/$(echo $GITHUB_REPOSITORY | cut -d/ -f2)/$directory"
 | 
					 | 
				
			||||||
directory_container="$GITHUB_WORKSPACE/$directory"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cd "$directory_container"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
package="$(dpkg-parsechangelog -S Source)"
 | 
					 | 
				
			||||||
version="$(dpkg-parsechangelog -S Version)"
 | 
					 | 
				
			||||||
distribution="$(dpkg-parsechangelog -S Distribution | sed 's/UNRELEASED/unstable/')"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
container="$package-$version"
 | 
					 | 
				
			||||||
image="$os:$distribution"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
cat <<EOF
 | 
					 | 
				
			||||||
directory_runner=$directory_runner
 | 
					 | 
				
			||||||
directory_container=$directory_container
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker create \
 | 
					 | 
				
			||||||
    --tty \
 | 
					 | 
				
			||||||
    --name "$container" \
 | 
					 | 
				
			||||||
    --volume "$directory_runner":"$directory_container" \
 | 
					 | 
				
			||||||
    --workdir "$directory_container" \
 | 
					 | 
				
			||||||
    "$image" \
 | 
					 | 
				
			||||||
    sleep inf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker start \
 | 
					 | 
				
			||||||
    "$container"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo -----------
 | 
					 | 
				
			||||||
pwd
 | 
					 | 
				
			||||||
ls -lh
 | 
					 | 
				
			||||||
echo -----------
 | 
					 | 
				
			||||||
echo -----------
 | 
					 | 
				
			||||||
docker exec "$container" pwd
 | 
					 | 
				
			||||||
docker exec "$container" ls -lh
 | 
					 | 
				
			||||||
echo -----------
 | 
					 | 
				
			||||||
exit
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker exec \
 | 
					 | 
				
			||||||
    "$container" \
 | 
					 | 
				
			||||||
    apt-get update
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker exec \
 | 
					 | 
				
			||||||
    "$container" \
 | 
					 | 
				
			||||||
    apt-get install -y dpkg-dev debhelper
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker exec \
 | 
					 | 
				
			||||||
    "$container" \
 | 
					 | 
				
			||||||
    apt-get build-dep "$directory_container"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
docker exec \
 | 
					 | 
				
			||||||
    "$container" \
 | 
					 | 
				
			||||||
    dpkg-buildpackage -S -us -uc
 | 
					 | 
				
			||||||
							
								
								
									
										146
									
								
								node_modules/@actions/core/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								node_modules/@actions/core/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,146 @@
 | 
				
			||||||
 | 
					# `@actions/core`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Core functions for setting results, logging, registering secrets and exporting variables across actions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Import the package
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					// javascript
 | 
				
			||||||
 | 
					const core = require('@actions/core');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// typescript
 | 
				
			||||||
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Inputs/Outputs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Action inputs can be read with `getInput`.  Outputs can be set with `setOutput` which makes them available to be mapped into inputs of other actions to ensure they are decoupled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const myInput = core.getInput('inputName', { required: true });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					core.setOutput('outputKey', 'outputVal');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Exporting variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Since each step runs in a separate process, you can use `exportVariable` to add it to this step and future steps environment blocks.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					core.exportVariable('envVar', 'Val');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Setting a secret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Setting a secret registers the secret with the runner to ensure it is masked in logs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					core.setSecret('myPassword');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### PATH Manipulation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To make a tool's path available in the path for the remainder of the job (without altering the machine or containers state), use `addPath`.  The runner will prepend the path given to the jobs PATH.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					core.addPath('/path/to/mytool');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Exit codes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You should use this library to set the failing exit code for your action.  If status is not set and the script runs to completion, that will lead to a success.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const core = require('@actions/core');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					try {
 | 
				
			||||||
 | 
					  // Do stuff
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					catch (err) {
 | 
				
			||||||
 | 
					  // setFailed logs the message and sets a failing exit code
 | 
				
			||||||
 | 
					  core.setFailed(`Action failed with error ${err}`);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note that `setNeutral` is not yet implemented in actions V2 but equivalent functionality is being planned.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Finally, this library provides some utilities for logging. Note that debug logging is hidden from the logs by default. This behavior can be toggled by enabling the [Step Debug Logs](../../docs/action-debugging.md#step-debug-logs).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const core = require('@actions/core');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const myInput = core.getInput('input');
 | 
				
			||||||
 | 
					try {
 | 
				
			||||||
 | 
					  core.debug('Inside try block');
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (!myInput) {
 | 
				
			||||||
 | 
					    core.warning('myInput was not set');
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (core.isDebug()) {
 | 
				
			||||||
 | 
					    // curl -v https://github.com
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    // curl https://github.com
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Do stuff
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					catch (err) {
 | 
				
			||||||
 | 
					  core.error(`Error ${err}, action may still succeed though`);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This library can also wrap chunks of output in foldable groups.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const core = require('@actions/core')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Manually wrap output
 | 
				
			||||||
 | 
					core.startGroup('Do some function')
 | 
				
			||||||
 | 
					doSomeFunction()
 | 
				
			||||||
 | 
					core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Wrap an asynchronous function call
 | 
				
			||||||
 | 
					const result = await core.group('Do something async', async () => {
 | 
				
			||||||
 | 
					  const response = await doSomeHTTPRequest()
 | 
				
			||||||
 | 
					  return response
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Action state
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can use this library to save state and get state for sharing information between a given wrapper action: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**action.yml**
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					name: 'Wrapper action sample'
 | 
				
			||||||
 | 
					inputs:
 | 
				
			||||||
 | 
					  name:
 | 
				
			||||||
 | 
					    default: 'GitHub'
 | 
				
			||||||
 | 
					runs:
 | 
				
			||||||
 | 
					  using: 'node12'
 | 
				
			||||||
 | 
					  main: 'main.js'
 | 
				
			||||||
 | 
					  post: 'cleanup.js'
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In action's `main.js`:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const core = require('@actions/core');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					core.saveState("pidToKill", 12345);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In action's `cleanup.js`:
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const core = require('@actions/core');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var pid = core.getState("pidToKill");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					process.kill(pid);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										16
									
								
								node_modules/@actions/core/lib/command.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								node_modules/@actions/core/lib/command.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,16 @@
 | 
				
			||||||
 | 
					interface CommandProperties {
 | 
				
			||||||
 | 
					    [key: string]: string;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Commands
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Command Format:
 | 
				
			||||||
 | 
					 *   ::name key=value,key=value::message
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Examples:
 | 
				
			||||||
 | 
					 *   ::warning::This is the message
 | 
				
			||||||
 | 
					 *   ::set-env name=MY_VAR::some value
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function issueCommand(command: string, properties: CommandProperties, message: string): void;
 | 
				
			||||||
 | 
					export declare function issue(name: string, message?: string): void;
 | 
				
			||||||
 | 
					export {};
 | 
				
			||||||
							
								
								
									
										78
									
								
								node_modules/@actions/core/lib/command.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								node_modules/@actions/core/lib/command.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,78 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			||||||
 | 
					    if (mod && mod.__esModule) return mod;
 | 
				
			||||||
 | 
					    var result = {};
 | 
				
			||||||
 | 
					    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
 | 
				
			||||||
 | 
					    result["default"] = mod;
 | 
				
			||||||
 | 
					    return result;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const os = __importStar(require("os"));
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Commands
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Command Format:
 | 
				
			||||||
 | 
					 *   ::name key=value,key=value::message
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Examples:
 | 
				
			||||||
 | 
					 *   ::warning::This is the message
 | 
				
			||||||
 | 
					 *   ::set-env name=MY_VAR::some value
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function issueCommand(command, properties, message) {
 | 
				
			||||||
 | 
					    const cmd = new Command(command, properties, message);
 | 
				
			||||||
 | 
					    process.stdout.write(cmd.toString() + os.EOL);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.issueCommand = issueCommand;
 | 
				
			||||||
 | 
					function issue(name, message = '') {
 | 
				
			||||||
 | 
					    issueCommand(name, {}, message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.issue = issue;
 | 
				
			||||||
 | 
					const CMD_STRING = '::';
 | 
				
			||||||
 | 
					class Command {
 | 
				
			||||||
 | 
					    constructor(command, properties, message) {
 | 
				
			||||||
 | 
					        if (!command) {
 | 
				
			||||||
 | 
					            command = 'missing.command';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.command = command;
 | 
				
			||||||
 | 
					        this.properties = properties;
 | 
				
			||||||
 | 
					        this.message = message;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    toString() {
 | 
				
			||||||
 | 
					        let cmdStr = CMD_STRING + this.command;
 | 
				
			||||||
 | 
					        if (this.properties && Object.keys(this.properties).length > 0) {
 | 
				
			||||||
 | 
					            cmdStr += ' ';
 | 
				
			||||||
 | 
					            let first = true;
 | 
				
			||||||
 | 
					            for (const key in this.properties) {
 | 
				
			||||||
 | 
					                if (this.properties.hasOwnProperty(key)) {
 | 
				
			||||||
 | 
					                    const val = this.properties[key];
 | 
				
			||||||
 | 
					                    if (val) {
 | 
				
			||||||
 | 
					                        if (first) {
 | 
				
			||||||
 | 
					                            first = false;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else {
 | 
				
			||||||
 | 
					                            cmdStr += ',';
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        cmdStr += `${key}=${escapeProperty(val)}`;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        cmdStr += `${CMD_STRING}${escapeData(this.message)}`;
 | 
				
			||||||
 | 
					        return cmdStr;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function escapeData(s) {
 | 
				
			||||||
 | 
					    return (s || '')
 | 
				
			||||||
 | 
					        .replace(/%/g, '%25')
 | 
				
			||||||
 | 
					        .replace(/\r/g, '%0D')
 | 
				
			||||||
 | 
					        .replace(/\n/g, '%0A');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function escapeProperty(s) {
 | 
				
			||||||
 | 
					    return (s || '')
 | 
				
			||||||
 | 
					        .replace(/%/g, '%25')
 | 
				
			||||||
 | 
					        .replace(/\r/g, '%0D')
 | 
				
			||||||
 | 
					        .replace(/\n/g, '%0A')
 | 
				
			||||||
 | 
					        .replace(/:/g, '%3A')
 | 
				
			||||||
 | 
					        .replace(/,/g, '%2C');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//# sourceMappingURL=command.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/core/lib/command.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/core/lib/command.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{"version":3,"file":"command.js","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":";;;;;;;;;AAAA,uCAAwB;AAQxB;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAC1B,OAAe,EACf,UAA6B,EAC7B,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAC/C,CAAC;AAPD,oCAOC;AAED,SAAgB,KAAK,CAAC,IAAY,EAAE,UAAkB,EAAE;IACtD,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACjC,CAAC;AAFD,sBAEC;AAED,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB,MAAM,OAAO;IAKX,YAAY,OAAe,EAAE,UAA6B,EAAE,OAAe;QACzE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,iBAAiB,CAAA;SAC5B;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,QAAQ;QACN,IAAI,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAA;QAEtC,IAAI,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,MAAM,IAAI,GAAG,CAAA;YACb,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;oBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,EAAE;wBACP,IAAI,KAAK,EAAE;4BACT,KAAK,GAAG,KAAK,CAAA;yBACd;6BAAM;4BACL,MAAM,IAAI,GAAG,CAAA;yBACd;wBAED,MAAM,IAAI,GAAG,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAA;qBAC1C;iBACF;aACF;SACF;QAED,MAAM,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACpD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAED,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACb,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,CAAS;IAC/B,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;SACb,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;SACpB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACzB,CAAC"}
 | 
				
			||||||
							
								
								
									
										116
									
								
								node_modules/@actions/core/lib/core.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								node_modules/@actions/core/lib/core.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,116 @@
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Interface for getInput options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface InputOptions {
 | 
				
			||||||
 | 
					    /** Optional. Whether the input is required. If required and not present, will throw. Defaults to false */
 | 
				
			||||||
 | 
					    required?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The code to exit an action
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare enum ExitCode {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * A code indicating that the action was successful
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    Success = 0,
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * A code indicating that the action was a failure
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    Failure = 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets env variable for this action and future actions in the job
 | 
				
			||||||
 | 
					 * @param name the name of the variable to set
 | 
				
			||||||
 | 
					 * @param val the value of the variable
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function exportVariable(name: string, val: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Registers a secret which will get masked from logs
 | 
				
			||||||
 | 
					 * @param secret value of the secret
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function setSecret(secret: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Prepends inputPath to the PATH (for this action and future actions)
 | 
				
			||||||
 | 
					 * @param inputPath
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function addPath(inputPath: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets the value of an input.  The value is also trimmed.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the input to get
 | 
				
			||||||
 | 
					 * @param     options  optional. See InputOptions.
 | 
				
			||||||
 | 
					 * @returns   string
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function getInput(name: string, options?: InputOptions): string;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets the value of an output.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the output to set
 | 
				
			||||||
 | 
					 * @param     value    value to store
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function setOutput(name: string, value: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets the action status to failed.
 | 
				
			||||||
 | 
					 * When the action exits it will be with an exit code of 1
 | 
				
			||||||
 | 
					 * @param message add error issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function setFailed(message: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets whether Actions Step Debug is on or not
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function isDebug(): boolean;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Writes debug message to user log
 | 
				
			||||||
 | 
					 * @param message debug message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function debug(message: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Adds an error issue
 | 
				
			||||||
 | 
					 * @param message error issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function error(message: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Adds an warning issue
 | 
				
			||||||
 | 
					 * @param message warning issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function warning(message: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Writes info to log with console.log.
 | 
				
			||||||
 | 
					 * @param message info message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function info(message: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Begin an output group.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Output until the next `groupEnd` will be foldable in this group
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param name The name of the output group
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function startGroup(name: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * End an output group.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function endGroup(): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Wrap an asynchronous function call in a group.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Returns the same type as the function itself.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param name The name of the group
 | 
				
			||||||
 | 
					 * @param fn The function to wrap in the group
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function group<T>(name: string, fn: () => Promise<T>): Promise<T>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Saves state for current action, the state can only be retrieved by this action's post job execution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the state to store
 | 
				
			||||||
 | 
					 * @param     value    value to store
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function saveState(name: string, value: string): void;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets the value of an state set by this action's main execution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the state to get
 | 
				
			||||||
 | 
					 * @returns   string
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function getState(name: string): string;
 | 
				
			||||||
							
								
								
									
										209
									
								
								node_modules/@actions/core/lib/core.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										209
									
								
								node_modules/@actions/core/lib/core.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,209 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
				
			||||||
 | 
					    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
				
			||||||
 | 
					    return new (P || (P = Promise))(function (resolve, reject) {
 | 
				
			||||||
 | 
					        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
				
			||||||
 | 
					        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			||||||
 | 
					    if (mod && mod.__esModule) return mod;
 | 
				
			||||||
 | 
					    var result = {};
 | 
				
			||||||
 | 
					    if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
 | 
				
			||||||
 | 
					    result["default"] = mod;
 | 
				
			||||||
 | 
					    return result;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const command_1 = require("./command");
 | 
				
			||||||
 | 
					const os = __importStar(require("os"));
 | 
				
			||||||
 | 
					const path = __importStar(require("path"));
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * The code to exit an action
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					var ExitCode;
 | 
				
			||||||
 | 
					(function (ExitCode) {
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * A code indicating that the action was successful
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    ExitCode[ExitCode["Success"] = 0] = "Success";
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * A code indicating that the action was a failure
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    ExitCode[ExitCode["Failure"] = 1] = "Failure";
 | 
				
			||||||
 | 
					})(ExitCode = exports.ExitCode || (exports.ExitCode = {}));
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					// Variables
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets env variable for this action and future actions in the job
 | 
				
			||||||
 | 
					 * @param name the name of the variable to set
 | 
				
			||||||
 | 
					 * @param val the value of the variable
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function exportVariable(name, val) {
 | 
				
			||||||
 | 
					    process.env[name] = val;
 | 
				
			||||||
 | 
					    command_1.issueCommand('set-env', { name }, val);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.exportVariable = exportVariable;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Registers a secret which will get masked from logs
 | 
				
			||||||
 | 
					 * @param secret value of the secret
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function setSecret(secret) {
 | 
				
			||||||
 | 
					    command_1.issueCommand('add-mask', {}, secret);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.setSecret = setSecret;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Prepends inputPath to the PATH (for this action and future actions)
 | 
				
			||||||
 | 
					 * @param inputPath
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function addPath(inputPath) {
 | 
				
			||||||
 | 
					    command_1.issueCommand('add-path', {}, inputPath);
 | 
				
			||||||
 | 
					    process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.addPath = addPath;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets the value of an input.  The value is also trimmed.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the input to get
 | 
				
			||||||
 | 
					 * @param     options  optional. See InputOptions.
 | 
				
			||||||
 | 
					 * @returns   string
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function getInput(name, options) {
 | 
				
			||||||
 | 
					    const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || '';
 | 
				
			||||||
 | 
					    if (options && options.required && !val) {
 | 
				
			||||||
 | 
					        throw new Error(`Input required and not supplied: ${name}`);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return val.trim();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.getInput = getInput;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets the value of an output.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the output to set
 | 
				
			||||||
 | 
					 * @param     value    value to store
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function setOutput(name, value) {
 | 
				
			||||||
 | 
					    command_1.issueCommand('set-output', { name }, value);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.setOutput = setOutput;
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					// Results
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Sets the action status to failed.
 | 
				
			||||||
 | 
					 * When the action exits it will be with an exit code of 1
 | 
				
			||||||
 | 
					 * @param message add error issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function setFailed(message) {
 | 
				
			||||||
 | 
					    process.exitCode = ExitCode.Failure;
 | 
				
			||||||
 | 
					    error(message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.setFailed = setFailed;
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					// Logging Commands
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets whether Actions Step Debug is on or not
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function isDebug() {
 | 
				
			||||||
 | 
					    return process.env['RUNNER_DEBUG'] === '1';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.isDebug = isDebug;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Writes debug message to user log
 | 
				
			||||||
 | 
					 * @param message debug message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function debug(message) {
 | 
				
			||||||
 | 
					    command_1.issueCommand('debug', {}, message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.debug = debug;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Adds an error issue
 | 
				
			||||||
 | 
					 * @param message error issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function error(message) {
 | 
				
			||||||
 | 
					    command_1.issue('error', message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.error = error;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Adds an warning issue
 | 
				
			||||||
 | 
					 * @param message warning issue message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function warning(message) {
 | 
				
			||||||
 | 
					    command_1.issue('warning', message);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.warning = warning;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Writes info to log with console.log.
 | 
				
			||||||
 | 
					 * @param message info message
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function info(message) {
 | 
				
			||||||
 | 
					    process.stdout.write(message + os.EOL);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.info = info;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Begin an output group.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Output until the next `groupEnd` will be foldable in this group
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param name The name of the output group
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function startGroup(name) {
 | 
				
			||||||
 | 
					    command_1.issue('group', name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.startGroup = startGroup;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * End an output group.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function endGroup() {
 | 
				
			||||||
 | 
					    command_1.issue('endgroup');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.endGroup = endGroup;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Wrap an asynchronous function call in a group.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Returns the same type as the function itself.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param name The name of the group
 | 
				
			||||||
 | 
					 * @param fn The function to wrap in the group
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function group(name, fn) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        startGroup(name);
 | 
				
			||||||
 | 
					        let result;
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            result = yield fn();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        finally {
 | 
				
			||||||
 | 
					            endGroup();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.group = group;
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					// Wrapper action state
 | 
				
			||||||
 | 
					//-----------------------------------------------------------------------
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Saves state for current action, the state can only be retrieved by this action's post job execution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the state to store
 | 
				
			||||||
 | 
					 * @param     value    value to store
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function saveState(name, value) {
 | 
				
			||||||
 | 
					    command_1.issueCommand('save-state', { name }, value);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.saveState = saveState;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Gets the value of an state set by this action's main execution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     name     name of the state to get
 | 
				
			||||||
 | 
					 * @returns   string
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function getState(name) {
 | 
				
			||||||
 | 
					    return process.env[`STATE_${name}`] || '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.getState = getState;
 | 
				
			||||||
 | 
					//# sourceMappingURL=core.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/core/lib/core.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/core/lib/core.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAA6C;AAE7C,uCAAwB;AACxB,2CAA4B;AAU5B;;GAEG;AACH,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB;;OAEG;IACH,6CAAW,CAAA;IAEX;;OAEG;IACH,6CAAW,CAAA;AACb,CAAC,EAVW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAUnB;AAED,yEAAyE;AACzE,YAAY;AACZ,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAY,EAAE,GAAW;IACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAA;IACvB,sBAAY,CAAC,SAAS,EAAE,EAAC,IAAI,EAAC,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC;AAHD,wCAGC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,MAAc;IACtC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,CAAA;AACtC,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,SAAiB;IACvC,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,SAAS,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA;AAC7E,CAAC;AAHD,0BAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,OAAsB;IAC3D,MAAM,GAAG,GACP,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;IACrE,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;AACnB,CAAC;AARD,4BAQC;AAED;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED,yEAAyE;AACzE,UAAU;AACV,yEAAyE;AAEzE;;;;GAIG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAA;IACnC,KAAK,CAAC,OAAO,CAAC,CAAA;AAChB,CAAC;AAHD,8BAGC;AAED,yEAAyE;AACzE,mBAAmB;AACnB,yEAAyE;AAEzE;;GAEG;AACH,SAAgB,OAAO;IACrB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,CAAA;AAC5C,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,sBAAY,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AACpC,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAe;IACnC,eAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AACzB,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,eAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;AAC3B,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,IAAI,CAAC,OAAe;IAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AACxC,CAAC;AAFD,oBAEC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAY;IACrC,eAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACtB,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,QAAQ;IACtB,eAAK,CAAC,UAAU,CAAC,CAAA;AACnB,CAAC;AAFD,4BAEC;AAED;;;;;;;GAOG;AACH,SAAsB,KAAK,CAAI,IAAY,EAAE,EAAoB;;QAC/D,UAAU,CAAC,IAAI,CAAC,CAAA;QAEhB,IAAI,MAAS,CAAA;QAEb,IAAI;YACF,MAAM,GAAG,MAAM,EAAE,EAAE,CAAA;SACpB;gBAAS;YACR,QAAQ,EAAE,CAAA;SACX;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CAAA;AAZD,sBAYC;AAED,yEAAyE;AACzE,uBAAuB;AACvB,yEAAyE;AAEzE;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,IAAY,EAAE,KAAa;IACnD,sBAAY,CAAC,YAAY,EAAE,EAAC,IAAI,EAAC,EAAE,KAAK,CAAC,CAAA;AAC3C,CAAC;AAFD,8BAEC;AAED;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,IAAY;IACnC,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AAC3C,CAAC;AAFD,4BAEC"}
 | 
				
			||||||
							
								
								
									
										67
									
								
								node_modules/@actions/core/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								node_modules/@actions/core/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "_from": "@actions/core",
 | 
				
			||||||
 | 
					  "_id": "@actions/core@1.2.3",
 | 
				
			||||||
 | 
					  "_inBundle": false,
 | 
				
			||||||
 | 
					  "_integrity": "sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w==",
 | 
				
			||||||
 | 
					  "_location": "/@actions/core",
 | 
				
			||||||
 | 
					  "_phantomChildren": {},
 | 
				
			||||||
 | 
					  "_requested": {
 | 
				
			||||||
 | 
					    "type": "tag",
 | 
				
			||||||
 | 
					    "registry": true,
 | 
				
			||||||
 | 
					    "raw": "@actions/core",
 | 
				
			||||||
 | 
					    "name": "@actions/core",
 | 
				
			||||||
 | 
					    "escapedName": "@actions%2fcore",
 | 
				
			||||||
 | 
					    "scope": "@actions",
 | 
				
			||||||
 | 
					    "rawSpec": "",
 | 
				
			||||||
 | 
					    "saveSpec": null,
 | 
				
			||||||
 | 
					    "fetchSpec": "latest"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "_requiredBy": [
 | 
				
			||||||
 | 
					    "#USER",
 | 
				
			||||||
 | 
					    "/"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "_resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.3.tgz",
 | 
				
			||||||
 | 
					  "_shasum": "e844b4fa0820e206075445079130868f95bfca95",
 | 
				
			||||||
 | 
					  "_spec": "@actions/core",
 | 
				
			||||||
 | 
					  "_where": "/home/dawidd6/github/dawidd6/action-debian-package",
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://github.com/actions/toolkit/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bundleDependencies": false,
 | 
				
			||||||
 | 
					  "deprecated": false,
 | 
				
			||||||
 | 
					  "description": "Actions core lib",
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "@types/node": "^12.0.2"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "directories": {
 | 
				
			||||||
 | 
					    "lib": "lib",
 | 
				
			||||||
 | 
					    "test": "__tests__"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "lib"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "homepage": "https://github.com/actions/toolkit/tree/master/packages/core",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "github",
 | 
				
			||||||
 | 
					    "actions",
 | 
				
			||||||
 | 
					    "core"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "main": "lib/core.js",
 | 
				
			||||||
 | 
					  "name": "@actions/core",
 | 
				
			||||||
 | 
					  "publishConfig": {
 | 
				
			||||||
 | 
					    "access": "public"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "git+https://github.com/actions/toolkit.git",
 | 
				
			||||||
 | 
					    "directory": "packages/core"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "audit-moderate": "npm install && npm audit --audit-level=moderate",
 | 
				
			||||||
 | 
					    "test": "echo \"Error: run tests from root\" && exit 1",
 | 
				
			||||||
 | 
					    "tsc": "tsc"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "types": "lib/core.d.ts",
 | 
				
			||||||
 | 
					  "version": "1.2.3"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										57
									
								
								node_modules/@actions/exec/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								node_modules/@actions/exec/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,57 @@
 | 
				
			||||||
 | 
					# `@actions/exec`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Basic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can use this package to execute tools in a cross platform way:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const exec = require('@actions/exec');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await exec.exec('node index.js');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Args
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can also pass in arg arrays:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const exec = require('@actions/exec');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await exec.exec('node', ['index.js', 'foo=bar']);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Output/options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Capture output or specify [other options](https://github.com/actions/toolkit/blob/d9347d4ab99fd507c0b9104b2cf79fb44fcc827d/packages/exec/src/interfaces.ts#L5):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const exec = require('@actions/exec');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let myOutput = '';
 | 
				
			||||||
 | 
					let myError = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const options = {};
 | 
				
			||||||
 | 
					options.listeners = {
 | 
				
			||||||
 | 
					  stdout: (data: Buffer) => {
 | 
				
			||||||
 | 
					    myOutput += data.toString();
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  stderr: (data: Buffer) => {
 | 
				
			||||||
 | 
					    myError += data.toString();
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					options.cwd = './lib';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await exec.exec('node', ['index.js', 'foo=bar'], options);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Exec tools not in the PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					You can specify the full path for tools not in the PATH:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const exec = require('@actions/exec');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await exec.exec('"/path/to/my-tool"', ['arg1']);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										12
									
								
								node_modules/@actions/exec/lib/exec.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								node_modules/@actions/exec/lib/exec.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,12 @@
 | 
				
			||||||
 | 
					import * as im from './interfaces';
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Exec a command.
 | 
				
			||||||
 | 
					 * Output will be streamed to the live console.
 | 
				
			||||||
 | 
					 * Returns promise with return code
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     commandLine        command to execute (can include additional args). Must be correctly escaped.
 | 
				
			||||||
 | 
					 * @param     args               optional arguments for tool. Escaping is handled by the lib.
 | 
				
			||||||
 | 
					 * @param     options            optional exec options.  See ExecOptions
 | 
				
			||||||
 | 
					 * @returns   Promise<number>    exit code
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function exec(commandLine: string, args?: string[], options?: im.ExecOptions): Promise<number>;
 | 
				
			||||||
							
								
								
									
										37
									
								
								node_modules/@actions/exec/lib/exec.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								node_modules/@actions/exec/lib/exec.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
				
			||||||
 | 
					    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
				
			||||||
 | 
					    return new (P || (P = Promise))(function (resolve, reject) {
 | 
				
			||||||
 | 
					        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
				
			||||||
 | 
					        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const tr = require("./toolrunner");
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Exec a command.
 | 
				
			||||||
 | 
					 * Output will be streamed to the live console.
 | 
				
			||||||
 | 
					 * Returns promise with return code
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     commandLine        command to execute (can include additional args). Must be correctly escaped.
 | 
				
			||||||
 | 
					 * @param     args               optional arguments for tool. Escaping is handled by the lib.
 | 
				
			||||||
 | 
					 * @param     options            optional exec options.  See ExecOptions
 | 
				
			||||||
 | 
					 * @returns   Promise<number>    exit code
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function exec(commandLine, args, options) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const commandArgs = tr.argStringToArray(commandLine);
 | 
				
			||||||
 | 
					        if (commandArgs.length === 0) {
 | 
				
			||||||
 | 
					            throw new Error(`Parameter 'commandLine' cannot be null or empty.`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // Path to tool to execute should be first arg
 | 
				
			||||||
 | 
					        const toolPath = commandArgs[0];
 | 
				
			||||||
 | 
					        args = commandArgs.slice(1).concat(args || []);
 | 
				
			||||||
 | 
					        const runner = new tr.ToolRunner(toolPath, args, options);
 | 
				
			||||||
 | 
					        return runner.exec();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.exec = exec;
 | 
				
			||||||
 | 
					//# sourceMappingURL=exec.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/exec/lib/exec.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/exec/lib/exec.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{"version":3,"file":"exec.js","sourceRoot":"","sources":["../src/exec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,mCAAkC;AAElC;;;;;;;;;GASG;AACH,SAAsB,IAAI,CACxB,WAAmB,EACnB,IAAe,EACf,OAAwB;;QAExB,MAAM,WAAW,GAAG,EAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA;QACpD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;SACpE;QACD,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAA;QAC/B,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAkB,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAA;IACtB,CAAC;CAAA;AAdD,oBAcC"}
 | 
				
			||||||
							
								
								
									
										35
									
								
								node_modules/@actions/exec/lib/interfaces.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								node_modules/@actions/exec/lib/interfaces.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					/// <reference types="node" />
 | 
				
			||||||
 | 
					import * as stream from 'stream';
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Interface for exec options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface ExecOptions {
 | 
				
			||||||
 | 
					    /** optional working directory.  defaults to current */
 | 
				
			||||||
 | 
					    cwd?: string;
 | 
				
			||||||
 | 
					    /** optional envvar dictionary.  defaults to current process's env */
 | 
				
			||||||
 | 
					    env?: {
 | 
				
			||||||
 | 
					        [key: string]: string;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    /** optional.  defaults to false */
 | 
				
			||||||
 | 
					    silent?: boolean;
 | 
				
			||||||
 | 
					    /** optional out stream to use. Defaults to process.stdout */
 | 
				
			||||||
 | 
					    outStream?: stream.Writable;
 | 
				
			||||||
 | 
					    /** optional err stream to use. Defaults to process.stderr */
 | 
				
			||||||
 | 
					    errStream?: stream.Writable;
 | 
				
			||||||
 | 
					    /** optional. whether to skip quoting/escaping arguments if needed.  defaults to false. */
 | 
				
			||||||
 | 
					    windowsVerbatimArguments?: boolean;
 | 
				
			||||||
 | 
					    /** optional.  whether to fail if output to stderr.  defaults to false */
 | 
				
			||||||
 | 
					    failOnStdErr?: boolean;
 | 
				
			||||||
 | 
					    /** optional.  defaults to failing on non zero.  ignore will not fail leaving it up to the caller */
 | 
				
			||||||
 | 
					    ignoreReturnCode?: boolean;
 | 
				
			||||||
 | 
					    /** optional. How long in ms to wait for STDIO streams to close after the exit event of the process before terminating. defaults to 10000 */
 | 
				
			||||||
 | 
					    delay?: number;
 | 
				
			||||||
 | 
					    /** optional. Listeners for output. Callback functions that will be called on these events */
 | 
				
			||||||
 | 
					    listeners?: {
 | 
				
			||||||
 | 
					        stdout?: (data: Buffer) => void;
 | 
				
			||||||
 | 
					        stderr?: (data: Buffer) => void;
 | 
				
			||||||
 | 
					        stdline?: (data: string) => void;
 | 
				
			||||||
 | 
					        errline?: (data: string) => void;
 | 
				
			||||||
 | 
					        debug?: (data: string) => void;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								node_modules/@actions/exec/lib/interfaces.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								node_modules/@actions/exec/lib/interfaces.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					//# sourceMappingURL=interfaces.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/exec/lib/interfaces.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/exec/lib/interfaces.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":""}
 | 
				
			||||||
							
								
								
									
										37
									
								
								node_modules/@actions/exec/lib/toolrunner.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								node_modules/@actions/exec/lib/toolrunner.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,37 @@
 | 
				
			||||||
 | 
					/// <reference types="node" />
 | 
				
			||||||
 | 
					import * as events from 'events';
 | 
				
			||||||
 | 
					import * as im from './interfaces';
 | 
				
			||||||
 | 
					export declare class ToolRunner extends events.EventEmitter {
 | 
				
			||||||
 | 
					    constructor(toolPath: string, args?: string[], options?: im.ExecOptions);
 | 
				
			||||||
 | 
					    private toolPath;
 | 
				
			||||||
 | 
					    private args;
 | 
				
			||||||
 | 
					    private options;
 | 
				
			||||||
 | 
					    private _debug;
 | 
				
			||||||
 | 
					    private _getCommandString;
 | 
				
			||||||
 | 
					    private _processLineBuffer;
 | 
				
			||||||
 | 
					    private _getSpawnFileName;
 | 
				
			||||||
 | 
					    private _getSpawnArgs;
 | 
				
			||||||
 | 
					    private _endsWith;
 | 
				
			||||||
 | 
					    private _isCmdFile;
 | 
				
			||||||
 | 
					    private _windowsQuoteCmdArg;
 | 
				
			||||||
 | 
					    private _uvQuoteCmdArg;
 | 
				
			||||||
 | 
					    private _cloneExecOptions;
 | 
				
			||||||
 | 
					    private _getSpawnOptions;
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Exec a tool.
 | 
				
			||||||
 | 
					     * Output will be streamed to the live console.
 | 
				
			||||||
 | 
					     * Returns promise with return code
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param     tool     path to tool to exec
 | 
				
			||||||
 | 
					     * @param     options  optional exec options.  See ExecOptions
 | 
				
			||||||
 | 
					     * @returns   number
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    exec(): Promise<number>;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Convert an arg string to an array of args. Handles escaping
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param    argString   string of arguments
 | 
				
			||||||
 | 
					 * @returns  string[]    array of arguments
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function argStringToArray(argString: string): string[];
 | 
				
			||||||
							
								
								
									
										587
									
								
								node_modules/@actions/exec/lib/toolrunner.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										587
									
								
								node_modules/@actions/exec/lib/toolrunner.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,587 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
				
			||||||
 | 
					    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
				
			||||||
 | 
					    return new (P || (P = Promise))(function (resolve, reject) {
 | 
				
			||||||
 | 
					        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
				
			||||||
 | 
					        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const os = require("os");
 | 
				
			||||||
 | 
					const events = require("events");
 | 
				
			||||||
 | 
					const child = require("child_process");
 | 
				
			||||||
 | 
					const path = require("path");
 | 
				
			||||||
 | 
					const io = require("@actions/io");
 | 
				
			||||||
 | 
					const ioUtil = require("@actions/io/lib/io-util");
 | 
				
			||||||
 | 
					/* eslint-disable @typescript-eslint/unbound-method */
 | 
				
			||||||
 | 
					const IS_WINDOWS = process.platform === 'win32';
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Class for running command line tools. Handles quoting and arg parsing in a platform agnostic way.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					class ToolRunner extends events.EventEmitter {
 | 
				
			||||||
 | 
					    constructor(toolPath, args, options) {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        if (!toolPath) {
 | 
				
			||||||
 | 
					            throw new Error("Parameter 'toolPath' cannot be null or empty.");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.toolPath = toolPath;
 | 
				
			||||||
 | 
					        this.args = args || [];
 | 
				
			||||||
 | 
					        this.options = options || {};
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _debug(message) {
 | 
				
			||||||
 | 
					        if (this.options.listeners && this.options.listeners.debug) {
 | 
				
			||||||
 | 
					            this.options.listeners.debug(message);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _getCommandString(options, noPrefix) {
 | 
				
			||||||
 | 
					        const toolPath = this._getSpawnFileName();
 | 
				
			||||||
 | 
					        const args = this._getSpawnArgs(options);
 | 
				
			||||||
 | 
					        let cmd = noPrefix ? '' : '[command]'; // omit prefix when piped to a second tool
 | 
				
			||||||
 | 
					        if (IS_WINDOWS) {
 | 
				
			||||||
 | 
					            // Windows + cmd file
 | 
				
			||||||
 | 
					            if (this._isCmdFile()) {
 | 
				
			||||||
 | 
					                cmd += toolPath;
 | 
				
			||||||
 | 
					                for (const a of args) {
 | 
				
			||||||
 | 
					                    cmd += ` ${a}`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // Windows + verbatim
 | 
				
			||||||
 | 
					            else if (options.windowsVerbatimArguments) {
 | 
				
			||||||
 | 
					                cmd += `"${toolPath}"`;
 | 
				
			||||||
 | 
					                for (const a of args) {
 | 
				
			||||||
 | 
					                    cmd += ` ${a}`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // Windows (regular)
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                cmd += this._windowsQuoteCmdArg(toolPath);
 | 
				
			||||||
 | 
					                for (const a of args) {
 | 
				
			||||||
 | 
					                    cmd += ` ${this._windowsQuoteCmdArg(a)}`;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            // OSX/Linux - this can likely be improved with some form of quoting.
 | 
				
			||||||
 | 
					            // creating processes on Unix is fundamentally different than Windows.
 | 
				
			||||||
 | 
					            // on Unix, execvp() takes an arg array.
 | 
				
			||||||
 | 
					            cmd += toolPath;
 | 
				
			||||||
 | 
					            for (const a of args) {
 | 
				
			||||||
 | 
					                cmd += ` ${a}`;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return cmd;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _processLineBuffer(data, strBuffer, onLine) {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            let s = strBuffer + data.toString();
 | 
				
			||||||
 | 
					            let n = s.indexOf(os.EOL);
 | 
				
			||||||
 | 
					            while (n > -1) {
 | 
				
			||||||
 | 
					                const line = s.substring(0, n);
 | 
				
			||||||
 | 
					                onLine(line);
 | 
				
			||||||
 | 
					                // the rest of the string ...
 | 
				
			||||||
 | 
					                s = s.substring(n + os.EOL.length);
 | 
				
			||||||
 | 
					                n = s.indexOf(os.EOL);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            strBuffer = s;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (err) {
 | 
				
			||||||
 | 
					            // streaming lines to console is best effort.  Don't fail a build.
 | 
				
			||||||
 | 
					            this._debug(`error processing line. Failed with error ${err}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _getSpawnFileName() {
 | 
				
			||||||
 | 
					        if (IS_WINDOWS) {
 | 
				
			||||||
 | 
					            if (this._isCmdFile()) {
 | 
				
			||||||
 | 
					                return process.env['COMSPEC'] || 'cmd.exe';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return this.toolPath;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _getSpawnArgs(options) {
 | 
				
			||||||
 | 
					        if (IS_WINDOWS) {
 | 
				
			||||||
 | 
					            if (this._isCmdFile()) {
 | 
				
			||||||
 | 
					                let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;
 | 
				
			||||||
 | 
					                for (const a of this.args) {
 | 
				
			||||||
 | 
					                    argline += ' ';
 | 
				
			||||||
 | 
					                    argline += options.windowsVerbatimArguments
 | 
				
			||||||
 | 
					                        ? a
 | 
				
			||||||
 | 
					                        : this._windowsQuoteCmdArg(a);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                argline += '"';
 | 
				
			||||||
 | 
					                return [argline];
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return this.args;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _endsWith(str, end) {
 | 
				
			||||||
 | 
					        return str.endsWith(end);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _isCmdFile() {
 | 
				
			||||||
 | 
					        const upperToolPath = this.toolPath.toUpperCase();
 | 
				
			||||||
 | 
					        return (this._endsWith(upperToolPath, '.CMD') ||
 | 
				
			||||||
 | 
					            this._endsWith(upperToolPath, '.BAT'));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _windowsQuoteCmdArg(arg) {
 | 
				
			||||||
 | 
					        // for .exe, apply the normal quoting rules that libuv applies
 | 
				
			||||||
 | 
					        if (!this._isCmdFile()) {
 | 
				
			||||||
 | 
					            return this._uvQuoteCmdArg(arg);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // otherwise apply quoting rules specific to the cmd.exe command line parser.
 | 
				
			||||||
 | 
					        // the libuv rules are generic and are not designed specifically for cmd.exe
 | 
				
			||||||
 | 
					        // command line parser.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // for a detailed description of the cmd.exe command line parser, refer to
 | 
				
			||||||
 | 
					        // http://stackoverflow.com/questions/4094699/how-does-the-windows-command-interpreter-cmd-exe-parse-scripts/7970912#7970912
 | 
				
			||||||
 | 
					        // need quotes for empty arg
 | 
				
			||||||
 | 
					        if (!arg) {
 | 
				
			||||||
 | 
					            return '""';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // determine whether the arg needs to be quoted
 | 
				
			||||||
 | 
					        const cmdSpecialChars = [
 | 
				
			||||||
 | 
					            ' ',
 | 
				
			||||||
 | 
					            '\t',
 | 
				
			||||||
 | 
					            '&',
 | 
				
			||||||
 | 
					            '(',
 | 
				
			||||||
 | 
					            ')',
 | 
				
			||||||
 | 
					            '[',
 | 
				
			||||||
 | 
					            ']',
 | 
				
			||||||
 | 
					            '{',
 | 
				
			||||||
 | 
					            '}',
 | 
				
			||||||
 | 
					            '^',
 | 
				
			||||||
 | 
					            '=',
 | 
				
			||||||
 | 
					            ';',
 | 
				
			||||||
 | 
					            '!',
 | 
				
			||||||
 | 
					            "'",
 | 
				
			||||||
 | 
					            '+',
 | 
				
			||||||
 | 
					            ',',
 | 
				
			||||||
 | 
					            '`',
 | 
				
			||||||
 | 
					            '~',
 | 
				
			||||||
 | 
					            '|',
 | 
				
			||||||
 | 
					            '<',
 | 
				
			||||||
 | 
					            '>',
 | 
				
			||||||
 | 
					            '"'
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        let needsQuotes = false;
 | 
				
			||||||
 | 
					        for (const char of arg) {
 | 
				
			||||||
 | 
					            if (cmdSpecialChars.some(x => x === char)) {
 | 
				
			||||||
 | 
					                needsQuotes = true;
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // short-circuit if quotes not needed
 | 
				
			||||||
 | 
					        if (!needsQuotes) {
 | 
				
			||||||
 | 
					            return arg;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // the following quoting rules are very similar to the rules that by libuv applies.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // 1) wrap the string in quotes
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // 2) double-up quotes - i.e. " => ""
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //    this is different from the libuv quoting rules. libuv replaces " with \", which unfortunately
 | 
				
			||||||
 | 
					        //    doesn't work well with a cmd.exe command line.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //    note, replacing " with "" also works well if the arg is passed to a downstream .NET console app.
 | 
				
			||||||
 | 
					        //    for example, the command line:
 | 
				
			||||||
 | 
					        //          foo.exe "myarg:""my val"""
 | 
				
			||||||
 | 
					        //    is parsed by a .NET console app into an arg array:
 | 
				
			||||||
 | 
					        //          [ "myarg:\"my val\"" ]
 | 
				
			||||||
 | 
					        //    which is the same end result when applying libuv quoting rules. although the actual
 | 
				
			||||||
 | 
					        //    command line from libuv quoting rules would look like:
 | 
				
			||||||
 | 
					        //          foo.exe "myarg:\"my val\""
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // 3) double-up slashes that precede a quote,
 | 
				
			||||||
 | 
					        //    e.g.  hello \world    => "hello \world"
 | 
				
			||||||
 | 
					        //          hello\"world    => "hello\\""world"
 | 
				
			||||||
 | 
					        //          hello\\"world   => "hello\\\\""world"
 | 
				
			||||||
 | 
					        //          hello world\    => "hello world\\"
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //    technically this is not required for a cmd.exe command line, or the batch argument parser.
 | 
				
			||||||
 | 
					        //    the reasons for including this as a .cmd quoting rule are:
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //    a) this is optimized for the scenario where the argument is passed from the .cmd file to an
 | 
				
			||||||
 | 
					        //       external program. many programs (e.g. .NET console apps) rely on the slash-doubling rule.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //    b) it's what we've been doing previously (by deferring to node default behavior) and we
 | 
				
			||||||
 | 
					        //       haven't heard any complaints about that aspect.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // note, a weakness of the quoting rules chosen here, is that % is not escaped. in fact, % cannot be
 | 
				
			||||||
 | 
					        // escaped when used on the command line directly - even though within a .cmd file % can be escaped
 | 
				
			||||||
 | 
					        // by using %%.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // the saving grace is, on the command line, %var% is left as-is if var is not defined. this contrasts
 | 
				
			||||||
 | 
					        // the line parsing rules within a .cmd file, where if var is not defined it is replaced with nothing.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // one option that was explored was replacing % with ^% - i.e. %var% => ^%var^%. this hack would
 | 
				
			||||||
 | 
					        // often work, since it is unlikely that var^ would exist, and the ^ character is removed when the
 | 
				
			||||||
 | 
					        // variable is used. the problem, however, is that ^ is not removed when %* is used to pass the args
 | 
				
			||||||
 | 
					        // to an external program.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // an unexplored potential solution for the % escaping problem, is to create a wrapper .cmd file.
 | 
				
			||||||
 | 
					        // % can be escaped within a .cmd file.
 | 
				
			||||||
 | 
					        let reverse = '"';
 | 
				
			||||||
 | 
					        let quoteHit = true;
 | 
				
			||||||
 | 
					        for (let i = arg.length; i > 0; i--) {
 | 
				
			||||||
 | 
					            // walk the string in reverse
 | 
				
			||||||
 | 
					            reverse += arg[i - 1];
 | 
				
			||||||
 | 
					            if (quoteHit && arg[i - 1] === '\\') {
 | 
				
			||||||
 | 
					                reverse += '\\'; // double the slash
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (arg[i - 1] === '"') {
 | 
				
			||||||
 | 
					                quoteHit = true;
 | 
				
			||||||
 | 
					                reverse += '"'; // double the quote
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                quoteHit = false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        reverse += '"';
 | 
				
			||||||
 | 
					        return reverse
 | 
				
			||||||
 | 
					            .split('')
 | 
				
			||||||
 | 
					            .reverse()
 | 
				
			||||||
 | 
					            .join('');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _uvQuoteCmdArg(arg) {
 | 
				
			||||||
 | 
					        // Tool runner wraps child_process.spawn() and needs to apply the same quoting as
 | 
				
			||||||
 | 
					        // Node in certain cases where the undocumented spawn option windowsVerbatimArguments
 | 
				
			||||||
 | 
					        // is used.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        // Since this function is a port of quote_cmd_arg from Node 4.x (technically, lib UV,
 | 
				
			||||||
 | 
					        // see https://github.com/nodejs/node/blob/v4.x/deps/uv/src/win/process.c for details),
 | 
				
			||||||
 | 
					        // pasting copyright notice from Node within this function:
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //      Copyright Joyent, Inc. and other Node contributors. All rights reserved.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //      Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					        //      of this software and associated documentation files (the "Software"), to
 | 
				
			||||||
 | 
					        //      deal in the Software without restriction, including without limitation the
 | 
				
			||||||
 | 
					        //      rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 | 
				
			||||||
 | 
					        //      sell copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					        //      furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //      The above copyright notice and this permission notice shall be included in
 | 
				
			||||||
 | 
					        //      all copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					        //
 | 
				
			||||||
 | 
					        //      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					        //      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					        //      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					        //      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					        //      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
				
			||||||
 | 
					        //      FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 | 
				
			||||||
 | 
					        //      IN THE SOFTWARE.
 | 
				
			||||||
 | 
					        if (!arg) {
 | 
				
			||||||
 | 
					            // Need double quotation for empty argument
 | 
				
			||||||
 | 
					            return '""';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (!arg.includes(' ') && !arg.includes('\t') && !arg.includes('"')) {
 | 
				
			||||||
 | 
					            // No quotation needed
 | 
				
			||||||
 | 
					            return arg;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (!arg.includes('"') && !arg.includes('\\')) {
 | 
				
			||||||
 | 
					            // No embedded double quotes or backslashes, so I can just wrap
 | 
				
			||||||
 | 
					            // quote marks around the whole thing.
 | 
				
			||||||
 | 
					            return `"${arg}"`;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // Expected input/output:
 | 
				
			||||||
 | 
					        //   input : hello"world
 | 
				
			||||||
 | 
					        //   output: "hello\"world"
 | 
				
			||||||
 | 
					        //   input : hello""world
 | 
				
			||||||
 | 
					        //   output: "hello\"\"world"
 | 
				
			||||||
 | 
					        //   input : hello\world
 | 
				
			||||||
 | 
					        //   output: hello\world
 | 
				
			||||||
 | 
					        //   input : hello\\world
 | 
				
			||||||
 | 
					        //   output: hello\\world
 | 
				
			||||||
 | 
					        //   input : hello\"world
 | 
				
			||||||
 | 
					        //   output: "hello\\\"world"
 | 
				
			||||||
 | 
					        //   input : hello\\"world
 | 
				
			||||||
 | 
					        //   output: "hello\\\\\"world"
 | 
				
			||||||
 | 
					        //   input : hello world\
 | 
				
			||||||
 | 
					        //   output: "hello world\\" - note the comment in libuv actually reads "hello world\"
 | 
				
			||||||
 | 
					        //                             but it appears the comment is wrong, it should be "hello world\\"
 | 
				
			||||||
 | 
					        let reverse = '"';
 | 
				
			||||||
 | 
					        let quoteHit = true;
 | 
				
			||||||
 | 
					        for (let i = arg.length; i > 0; i--) {
 | 
				
			||||||
 | 
					            // walk the string in reverse
 | 
				
			||||||
 | 
					            reverse += arg[i - 1];
 | 
				
			||||||
 | 
					            if (quoteHit && arg[i - 1] === '\\') {
 | 
				
			||||||
 | 
					                reverse += '\\';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (arg[i - 1] === '"') {
 | 
				
			||||||
 | 
					                quoteHit = true;
 | 
				
			||||||
 | 
					                reverse += '\\';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                quoteHit = false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        reverse += '"';
 | 
				
			||||||
 | 
					        return reverse
 | 
				
			||||||
 | 
					            .split('')
 | 
				
			||||||
 | 
					            .reverse()
 | 
				
			||||||
 | 
					            .join('');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _cloneExecOptions(options) {
 | 
				
			||||||
 | 
					        options = options || {};
 | 
				
			||||||
 | 
					        const result = {
 | 
				
			||||||
 | 
					            cwd: options.cwd || process.cwd(),
 | 
				
			||||||
 | 
					            env: options.env || process.env,
 | 
				
			||||||
 | 
					            silent: options.silent || false,
 | 
				
			||||||
 | 
					            windowsVerbatimArguments: options.windowsVerbatimArguments || false,
 | 
				
			||||||
 | 
					            failOnStdErr: options.failOnStdErr || false,
 | 
				
			||||||
 | 
					            ignoreReturnCode: options.ignoreReturnCode || false,
 | 
				
			||||||
 | 
					            delay: options.delay || 10000
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        result.outStream = options.outStream || process.stdout;
 | 
				
			||||||
 | 
					        result.errStream = options.errStream || process.stderr;
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _getSpawnOptions(options, toolPath) {
 | 
				
			||||||
 | 
					        options = options || {};
 | 
				
			||||||
 | 
					        const result = {};
 | 
				
			||||||
 | 
					        result.cwd = options.cwd;
 | 
				
			||||||
 | 
					        result.env = options.env;
 | 
				
			||||||
 | 
					        result['windowsVerbatimArguments'] =
 | 
				
			||||||
 | 
					            options.windowsVerbatimArguments || this._isCmdFile();
 | 
				
			||||||
 | 
					        if (options.windowsVerbatimArguments) {
 | 
				
			||||||
 | 
					            result.argv0 = `"${toolPath}"`;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return result;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Exec a tool.
 | 
				
			||||||
 | 
					     * Output will be streamed to the live console.
 | 
				
			||||||
 | 
					     * Returns promise with return code
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param     tool     path to tool to exec
 | 
				
			||||||
 | 
					     * @param     options  optional exec options.  See ExecOptions
 | 
				
			||||||
 | 
					     * @returns   number
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    exec() {
 | 
				
			||||||
 | 
					        return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					            // root the tool path if it is unrooted and contains relative pathing
 | 
				
			||||||
 | 
					            if (!ioUtil.isRooted(this.toolPath) &&
 | 
				
			||||||
 | 
					                (this.toolPath.includes('/') ||
 | 
				
			||||||
 | 
					                    (IS_WINDOWS && this.toolPath.includes('\\')))) {
 | 
				
			||||||
 | 
					                // prefer options.cwd if it is specified, however options.cwd may also need to be rooted
 | 
				
			||||||
 | 
					                this.toolPath = path.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // if the tool is only a file name, then resolve it from the PATH
 | 
				
			||||||
 | 
					            // otherwise verify it exists (add extension on Windows if necessary)
 | 
				
			||||||
 | 
					            this.toolPath = yield io.which(this.toolPath, true);
 | 
				
			||||||
 | 
					            return new Promise((resolve, reject) => {
 | 
				
			||||||
 | 
					                this._debug(`exec tool: ${this.toolPath}`);
 | 
				
			||||||
 | 
					                this._debug('arguments:');
 | 
				
			||||||
 | 
					                for (const arg of this.args) {
 | 
				
			||||||
 | 
					                    this._debug(`   ${arg}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                const optionsNonNull = this._cloneExecOptions(this.options);
 | 
				
			||||||
 | 
					                if (!optionsNonNull.silent && optionsNonNull.outStream) {
 | 
				
			||||||
 | 
					                    optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os.EOL);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                const state = new ExecState(optionsNonNull, this.toolPath);
 | 
				
			||||||
 | 
					                state.on('debug', (message) => {
 | 
				
			||||||
 | 
					                    this._debug(message);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                const fileName = this._getSpawnFileName();
 | 
				
			||||||
 | 
					                const cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName));
 | 
				
			||||||
 | 
					                const stdbuffer = '';
 | 
				
			||||||
 | 
					                if (cp.stdout) {
 | 
				
			||||||
 | 
					                    cp.stdout.on('data', (data) => {
 | 
				
			||||||
 | 
					                        if (this.options.listeners && this.options.listeners.stdout) {
 | 
				
			||||||
 | 
					                            this.options.listeners.stdout(data);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        if (!optionsNonNull.silent && optionsNonNull.outStream) {
 | 
				
			||||||
 | 
					                            optionsNonNull.outStream.write(data);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        this._processLineBuffer(data, stdbuffer, (line) => {
 | 
				
			||||||
 | 
					                            if (this.options.listeners && this.options.listeners.stdline) {
 | 
				
			||||||
 | 
					                                this.options.listeners.stdline(line);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                const errbuffer = '';
 | 
				
			||||||
 | 
					                if (cp.stderr) {
 | 
				
			||||||
 | 
					                    cp.stderr.on('data', (data) => {
 | 
				
			||||||
 | 
					                        state.processStderr = true;
 | 
				
			||||||
 | 
					                        if (this.options.listeners && this.options.listeners.stderr) {
 | 
				
			||||||
 | 
					                            this.options.listeners.stderr(data);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        if (!optionsNonNull.silent &&
 | 
				
			||||||
 | 
					                            optionsNonNull.errStream &&
 | 
				
			||||||
 | 
					                            optionsNonNull.outStream) {
 | 
				
			||||||
 | 
					                            const s = optionsNonNull.failOnStdErr
 | 
				
			||||||
 | 
					                                ? optionsNonNull.errStream
 | 
				
			||||||
 | 
					                                : optionsNonNull.outStream;
 | 
				
			||||||
 | 
					                            s.write(data);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        this._processLineBuffer(data, errbuffer, (line) => {
 | 
				
			||||||
 | 
					                            if (this.options.listeners && this.options.listeners.errline) {
 | 
				
			||||||
 | 
					                                this.options.listeners.errline(line);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                cp.on('error', (err) => {
 | 
				
			||||||
 | 
					                    state.processError = err.message;
 | 
				
			||||||
 | 
					                    state.processExited = true;
 | 
				
			||||||
 | 
					                    state.processClosed = true;
 | 
				
			||||||
 | 
					                    state.CheckComplete();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                cp.on('exit', (code) => {
 | 
				
			||||||
 | 
					                    state.processExitCode = code;
 | 
				
			||||||
 | 
					                    state.processExited = true;
 | 
				
			||||||
 | 
					                    this._debug(`Exit code ${code} received from tool '${this.toolPath}'`);
 | 
				
			||||||
 | 
					                    state.CheckComplete();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                cp.on('close', (code) => {
 | 
				
			||||||
 | 
					                    state.processExitCode = code;
 | 
				
			||||||
 | 
					                    state.processExited = true;
 | 
				
			||||||
 | 
					                    state.processClosed = true;
 | 
				
			||||||
 | 
					                    this._debug(`STDIO streams have closed for tool '${this.toolPath}'`);
 | 
				
			||||||
 | 
					                    state.CheckComplete();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                state.on('done', (error, exitCode) => {
 | 
				
			||||||
 | 
					                    if (stdbuffer.length > 0) {
 | 
				
			||||||
 | 
					                        this.emit('stdline', stdbuffer);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (errbuffer.length > 0) {
 | 
				
			||||||
 | 
					                        this.emit('errline', errbuffer);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    cp.removeAllListeners();
 | 
				
			||||||
 | 
					                    if (error) {
 | 
				
			||||||
 | 
					                        reject(error);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else {
 | 
				
			||||||
 | 
					                        resolve(exitCode);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.ToolRunner = ToolRunner;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Convert an arg string to an array of args. Handles escaping
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param    argString   string of arguments
 | 
				
			||||||
 | 
					 * @returns  string[]    array of arguments
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function argStringToArray(argString) {
 | 
				
			||||||
 | 
					    const args = [];
 | 
				
			||||||
 | 
					    let inQuotes = false;
 | 
				
			||||||
 | 
					    let escaped = false;
 | 
				
			||||||
 | 
					    let arg = '';
 | 
				
			||||||
 | 
					    function append(c) {
 | 
				
			||||||
 | 
					        // we only escape double quotes.
 | 
				
			||||||
 | 
					        if (escaped && c !== '"') {
 | 
				
			||||||
 | 
					            arg += '\\';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        arg += c;
 | 
				
			||||||
 | 
					        escaped = false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for (let i = 0; i < argString.length; i++) {
 | 
				
			||||||
 | 
					        const c = argString.charAt(i);
 | 
				
			||||||
 | 
					        if (c === '"') {
 | 
				
			||||||
 | 
					            if (!escaped) {
 | 
				
			||||||
 | 
					                inQuotes = !inQuotes;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                append(c);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (c === '\\' && escaped) {
 | 
				
			||||||
 | 
					            append(c);
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (c === '\\' && inQuotes) {
 | 
				
			||||||
 | 
					            escaped = true;
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (c === ' ' && !inQuotes) {
 | 
				
			||||||
 | 
					            if (arg.length > 0) {
 | 
				
			||||||
 | 
					                args.push(arg);
 | 
				
			||||||
 | 
					                arg = '';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            continue;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        append(c);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (arg.length > 0) {
 | 
				
			||||||
 | 
					        args.push(arg.trim());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return args;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.argStringToArray = argStringToArray;
 | 
				
			||||||
 | 
					class ExecState extends events.EventEmitter {
 | 
				
			||||||
 | 
					    constructor(options, toolPath) {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        this.processClosed = false; // tracks whether the process has exited and stdio is closed
 | 
				
			||||||
 | 
					        this.processError = '';
 | 
				
			||||||
 | 
					        this.processExitCode = 0;
 | 
				
			||||||
 | 
					        this.processExited = false; // tracks whether the process has exited
 | 
				
			||||||
 | 
					        this.processStderr = false; // tracks whether stderr was written to
 | 
				
			||||||
 | 
					        this.delay = 10000; // 10 seconds
 | 
				
			||||||
 | 
					        this.done = false;
 | 
				
			||||||
 | 
					        this.timeout = null;
 | 
				
			||||||
 | 
					        if (!toolPath) {
 | 
				
			||||||
 | 
					            throw new Error('toolPath must not be empty');
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.options = options;
 | 
				
			||||||
 | 
					        this.toolPath = toolPath;
 | 
				
			||||||
 | 
					        if (options.delay) {
 | 
				
			||||||
 | 
					            this.delay = options.delay;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    CheckComplete() {
 | 
				
			||||||
 | 
					        if (this.done) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (this.processClosed) {
 | 
				
			||||||
 | 
					            this._setResult();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (this.processExited) {
 | 
				
			||||||
 | 
					            this.timeout = setTimeout(ExecState.HandleTimeout, this.delay, this);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _debug(message) {
 | 
				
			||||||
 | 
					        this.emit('debug', message);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    _setResult() {
 | 
				
			||||||
 | 
					        // determine whether there is an error
 | 
				
			||||||
 | 
					        let error;
 | 
				
			||||||
 | 
					        if (this.processExited) {
 | 
				
			||||||
 | 
					            if (this.processError) {
 | 
				
			||||||
 | 
					                error = new Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (this.processExitCode !== 0 && !this.options.ignoreReturnCode) {
 | 
				
			||||||
 | 
					                error = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else if (this.processStderr && this.options.failOnStdErr) {
 | 
				
			||||||
 | 
					                error = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // clear the timeout
 | 
				
			||||||
 | 
					        if (this.timeout) {
 | 
				
			||||||
 | 
					            clearTimeout(this.timeout);
 | 
				
			||||||
 | 
					            this.timeout = null;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        this.done = true;
 | 
				
			||||||
 | 
					        this.emit('done', error, this.processExitCode);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    static HandleTimeout(state) {
 | 
				
			||||||
 | 
					        if (state.done) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (!state.processClosed && state.processExited) {
 | 
				
			||||||
 | 
					            const message = `The STDIO streams did not close within ${state.delay /
 | 
				
			||||||
 | 
					                1000} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;
 | 
				
			||||||
 | 
					            state._debug(message);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        state._setResult();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//# sourceMappingURL=toolrunner.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/exec/lib/toolrunner.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/exec/lib/toolrunner.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										67
									
								
								node_modules/@actions/exec/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								node_modules/@actions/exec/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,67 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "_from": "@actions/exec",
 | 
				
			||||||
 | 
					  "_id": "@actions/exec@1.0.3",
 | 
				
			||||||
 | 
					  "_inBundle": false,
 | 
				
			||||||
 | 
					  "_integrity": "sha512-TogJGnueOmM7ntCi0ASTUj4LapRRtDfj57Ja4IhPmg2fls28uVOPbAn8N+JifaOumN2UG3oEO/Ixek2A4NcYSA==",
 | 
				
			||||||
 | 
					  "_location": "/@actions/exec",
 | 
				
			||||||
 | 
					  "_phantomChildren": {},
 | 
				
			||||||
 | 
					  "_requested": {
 | 
				
			||||||
 | 
					    "type": "tag",
 | 
				
			||||||
 | 
					    "registry": true,
 | 
				
			||||||
 | 
					    "raw": "@actions/exec",
 | 
				
			||||||
 | 
					    "name": "@actions/exec",
 | 
				
			||||||
 | 
					    "escapedName": "@actions%2fexec",
 | 
				
			||||||
 | 
					    "scope": "@actions",
 | 
				
			||||||
 | 
					    "rawSpec": "",
 | 
				
			||||||
 | 
					    "saveSpec": null,
 | 
				
			||||||
 | 
					    "fetchSpec": "latest"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "_requiredBy": [
 | 
				
			||||||
 | 
					    "#USER",
 | 
				
			||||||
 | 
					    "/"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "_resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.3.tgz",
 | 
				
			||||||
 | 
					  "_shasum": "b967f8700d6ff011dcc91243b58bafc1bb9ab95f",
 | 
				
			||||||
 | 
					  "_spec": "@actions/exec",
 | 
				
			||||||
 | 
					  "_where": "/home/dawidd6/github/dawidd6/action-debian-package",
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://github.com/actions/toolkit/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bundleDependencies": false,
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@actions/io": "^1.0.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "deprecated": false,
 | 
				
			||||||
 | 
					  "description": "Actions exec lib",
 | 
				
			||||||
 | 
					  "directories": {
 | 
				
			||||||
 | 
					    "lib": "lib",
 | 
				
			||||||
 | 
					    "test": "__tests__"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "lib"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "homepage": "https://github.com/actions/toolkit/tree/master/packages/exec",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "github",
 | 
				
			||||||
 | 
					    "actions",
 | 
				
			||||||
 | 
					    "exec"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "main": "lib/exec.js",
 | 
				
			||||||
 | 
					  "name": "@actions/exec",
 | 
				
			||||||
 | 
					  "publishConfig": {
 | 
				
			||||||
 | 
					    "access": "public"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "git+https://github.com/actions/toolkit.git",
 | 
				
			||||||
 | 
					    "directory": "packages/exec"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "audit-moderate": "npm install && npm audit --audit-level=moderate",
 | 
				
			||||||
 | 
					    "test": "echo \"Error: run tests from root\" && exit 1",
 | 
				
			||||||
 | 
					    "tsc": "tsc"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "types": "lib/exec.d.ts",
 | 
				
			||||||
 | 
					  "version": "1.0.3"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										53
									
								
								node_modules/@actions/io/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								node_modules/@actions/io/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,53 @@
 | 
				
			||||||
 | 
					# `@actions/io`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					> Core functions for cli filesystem scenarios
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### mkdir -p
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Recursively make a directory. Follows rules specified in [man mkdir](https://linux.die.net/man/1/mkdir) with the `-p` option specified:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const io = require('@actions/io');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await io.mkdirP('path/to/make');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### cp/mv
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copy or move files or folders. Follows rules specified in [man cp](https://linux.die.net/man/1/cp) and [man mv](https://linux.die.net/man/1/mv):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const io = require('@actions/io');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Recursive must be true for directories
 | 
				
			||||||
 | 
					const options = { recursive: true, force: false }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await io.cp('path/to/directory', 'path/to/dest', options);
 | 
				
			||||||
 | 
					await io.mv('path/to/file', 'path/to/dest');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### rm -rf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Remove a file or folder recursively. Follows rules specified in [man rm](https://linux.die.net/man/1/rm) with the `-r` and `-f` rules specified.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const io = require('@actions/io');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await io.rmRF('path/to/directory');
 | 
				
			||||||
 | 
					await io.rmRF('path/to/file');
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### which
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Get the path to a tool and resolves via paths. Follows the rules specified in [man which](https://linux.die.net/man/1/which).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					const exec = require('@actions/exec');
 | 
				
			||||||
 | 
					const io = require('@actions/io');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const pythonPath: string = await io.which('python', true)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					await exec.exec(`"${pythonPath}"`, ['main.py']);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
							
								
								
									
										29
									
								
								node_modules/@actions/io/lib/io-util.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								node_modules/@actions/io/lib/io-util.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,29 @@
 | 
				
			||||||
 | 
					/// <reference types="node" />
 | 
				
			||||||
 | 
					import * as fs from 'fs';
 | 
				
			||||||
 | 
					export declare const chmod: typeof fs.promises.chmod, copyFile: typeof fs.promises.copyFile, lstat: typeof fs.promises.lstat, mkdir: typeof fs.promises.mkdir, readdir: typeof fs.promises.readdir, readlink: typeof fs.promises.readlink, rename: typeof fs.promises.rename, rmdir: typeof fs.promises.rmdir, stat: typeof fs.promises.stat, symlink: typeof fs.promises.symlink, unlink: typeof fs.promises.unlink;
 | 
				
			||||||
 | 
					export declare const IS_WINDOWS: boolean;
 | 
				
			||||||
 | 
					export declare function exists(fsPath: string): Promise<boolean>;
 | 
				
			||||||
 | 
					export declare function isDirectory(fsPath: string, useStat?: boolean): Promise<boolean>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
 | 
				
			||||||
 | 
					 * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function isRooted(p: string): boolean;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Recursively create a directory at `fsPath`.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This implementation is optimistic, meaning it attempts to create the full
 | 
				
			||||||
 | 
					 * path first, and backs up the path stack from there.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param fsPath The path to create
 | 
				
			||||||
 | 
					 * @param maxDepth The maximum recursion depth
 | 
				
			||||||
 | 
					 * @param depth The current recursion depth
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function mkdirP(fsPath: string, maxDepth?: number, depth?: number): Promise<void>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Best effort attempt to determine whether a file exists and is executable.
 | 
				
			||||||
 | 
					 * @param filePath    file path to check
 | 
				
			||||||
 | 
					 * @param extensions  additional file extensions to try
 | 
				
			||||||
 | 
					 * @return if file exists and is executable, returns the file path. otherwise empty string.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function tryGetExecutablePath(filePath: string, extensions: string[]): Promise<string>;
 | 
				
			||||||
							
								
								
									
										195
									
								
								node_modules/@actions/io/lib/io-util.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								node_modules/@actions/io/lib/io-util.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,195 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
				
			||||||
 | 
					    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
				
			||||||
 | 
					    return new (P || (P = Promise))(function (resolve, reject) {
 | 
				
			||||||
 | 
					        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
				
			||||||
 | 
					        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					var _a;
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const assert_1 = require("assert");
 | 
				
			||||||
 | 
					const fs = require("fs");
 | 
				
			||||||
 | 
					const path = require("path");
 | 
				
			||||||
 | 
					_a = fs.promises, exports.chmod = _a.chmod, exports.copyFile = _a.copyFile, exports.lstat = _a.lstat, exports.mkdir = _a.mkdir, exports.readdir = _a.readdir, exports.readlink = _a.readlink, exports.rename = _a.rename, exports.rmdir = _a.rmdir, exports.stat = _a.stat, exports.symlink = _a.symlink, exports.unlink = _a.unlink;
 | 
				
			||||||
 | 
					exports.IS_WINDOWS = process.platform === 'win32';
 | 
				
			||||||
 | 
					function exists(fsPath) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            yield exports.stat(fsPath);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (err) {
 | 
				
			||||||
 | 
					            if (err.code === 'ENOENT') {
 | 
				
			||||||
 | 
					                return false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            throw err;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.exists = exists;
 | 
				
			||||||
 | 
					function isDirectory(fsPath, useStat = false) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const stats = useStat ? yield exports.stat(fsPath) : yield exports.lstat(fsPath);
 | 
				
			||||||
 | 
					        return stats.isDirectory();
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.isDirectory = isDirectory;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * On OSX/Linux, true if path starts with '/'. On Windows, true for paths like:
 | 
				
			||||||
 | 
					 * \, \hello, \\hello\share, C:, and C:\hello (and corresponding alternate separator cases).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function isRooted(p) {
 | 
				
			||||||
 | 
					    p = normalizeSeparators(p);
 | 
				
			||||||
 | 
					    if (!p) {
 | 
				
			||||||
 | 
					        throw new Error('isRooted() parameter "p" cannot be empty');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (exports.IS_WINDOWS) {
 | 
				
			||||||
 | 
					        return (p.startsWith('\\') || /^[A-Z]:/i.test(p) // e.g. \ or \hello or \\hello
 | 
				
			||||||
 | 
					        ); // e.g. C: or C:\hello
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return p.startsWith('/');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.isRooted = isRooted;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Recursively create a directory at `fsPath`.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This implementation is optimistic, meaning it attempts to create the full
 | 
				
			||||||
 | 
					 * path first, and backs up the path stack from there.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param fsPath The path to create
 | 
				
			||||||
 | 
					 * @param maxDepth The maximum recursion depth
 | 
				
			||||||
 | 
					 * @param depth The current recursion depth
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function mkdirP(fsPath, maxDepth = 1000, depth = 1) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        assert_1.ok(fsPath, 'a path argument must be provided');
 | 
				
			||||||
 | 
					        fsPath = path.resolve(fsPath);
 | 
				
			||||||
 | 
					        if (depth >= maxDepth)
 | 
				
			||||||
 | 
					            return exports.mkdir(fsPath);
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            yield exports.mkdir(fsPath);
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (err) {
 | 
				
			||||||
 | 
					            switch (err.code) {
 | 
				
			||||||
 | 
					                case 'ENOENT': {
 | 
				
			||||||
 | 
					                    yield mkdirP(path.dirname(fsPath), maxDepth, depth + 1);
 | 
				
			||||||
 | 
					                    yield exports.mkdir(fsPath);
 | 
				
			||||||
 | 
					                    return;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                default: {
 | 
				
			||||||
 | 
					                    let stats;
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        stats = yield exports.stat(fsPath);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err2) {
 | 
				
			||||||
 | 
					                        throw err;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    if (!stats.isDirectory())
 | 
				
			||||||
 | 
					                        throw err;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.mkdirP = mkdirP;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Best effort attempt to determine whether a file exists and is executable.
 | 
				
			||||||
 | 
					 * @param filePath    file path to check
 | 
				
			||||||
 | 
					 * @param extensions  additional file extensions to try
 | 
				
			||||||
 | 
					 * @return if file exists and is executable, returns the file path. otherwise empty string.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function tryGetExecutablePath(filePath, extensions) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        let stats = undefined;
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            // test file exists
 | 
				
			||||||
 | 
					            stats = yield exports.stat(filePath);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (err) {
 | 
				
			||||||
 | 
					            if (err.code !== 'ENOENT') {
 | 
				
			||||||
 | 
					                // eslint-disable-next-line no-console
 | 
				
			||||||
 | 
					                console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (stats && stats.isFile()) {
 | 
				
			||||||
 | 
					            if (exports.IS_WINDOWS) {
 | 
				
			||||||
 | 
					                // on Windows, test for valid extension
 | 
				
			||||||
 | 
					                const upperExt = path.extname(filePath).toUpperCase();
 | 
				
			||||||
 | 
					                if (extensions.some(validExt => validExt.toUpperCase() === upperExt)) {
 | 
				
			||||||
 | 
					                    return filePath;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                if (isUnixExecutable(stats)) {
 | 
				
			||||||
 | 
					                    return filePath;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // try each extension
 | 
				
			||||||
 | 
					        const originalFilePath = filePath;
 | 
				
			||||||
 | 
					        for (const extension of extensions) {
 | 
				
			||||||
 | 
					            filePath = originalFilePath + extension;
 | 
				
			||||||
 | 
					            stats = undefined;
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                stats = yield exports.stat(filePath);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (err) {
 | 
				
			||||||
 | 
					                if (err.code !== 'ENOENT') {
 | 
				
			||||||
 | 
					                    // eslint-disable-next-line no-console
 | 
				
			||||||
 | 
					                    console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (stats && stats.isFile()) {
 | 
				
			||||||
 | 
					                if (exports.IS_WINDOWS) {
 | 
				
			||||||
 | 
					                    // preserve the case of the actual file (since an extension was appended)
 | 
				
			||||||
 | 
					                    try {
 | 
				
			||||||
 | 
					                        const directory = path.dirname(filePath);
 | 
				
			||||||
 | 
					                        const upperName = path.basename(filePath).toUpperCase();
 | 
				
			||||||
 | 
					                        for (const actualName of yield exports.readdir(directory)) {
 | 
				
			||||||
 | 
					                            if (upperName === actualName.toUpperCase()) {
 | 
				
			||||||
 | 
					                                filePath = path.join(directory, actualName);
 | 
				
			||||||
 | 
					                                break;
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    catch (err) {
 | 
				
			||||||
 | 
					                        // eslint-disable-next-line no-console
 | 
				
			||||||
 | 
					                        console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    return filePath;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    if (isUnixExecutable(stats)) {
 | 
				
			||||||
 | 
					                        return filePath;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return '';
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.tryGetExecutablePath = tryGetExecutablePath;
 | 
				
			||||||
 | 
					function normalizeSeparators(p) {
 | 
				
			||||||
 | 
					    p = p || '';
 | 
				
			||||||
 | 
					    if (exports.IS_WINDOWS) {
 | 
				
			||||||
 | 
					        // convert slashes on Windows
 | 
				
			||||||
 | 
					        p = p.replace(/\//g, '\\');
 | 
				
			||||||
 | 
					        // remove redundant slashes
 | 
				
			||||||
 | 
					        return p.replace(/\\\\+/g, '\\');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // remove redundant slashes
 | 
				
			||||||
 | 
					    return p.replace(/\/\/+/g, '/');
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// on Mac/Linux, test the execute bit
 | 
				
			||||||
 | 
					//     R   W  X  R  W X R W X
 | 
				
			||||||
 | 
					//   256 128 64 32 16 8 4 2 1
 | 
				
			||||||
 | 
					function isUnixExecutable(stats) {
 | 
				
			||||||
 | 
					    return ((stats.mode & 1) > 0 ||
 | 
				
			||||||
 | 
					        ((stats.mode & 8) > 0 && stats.gid === process.getgid()) ||
 | 
				
			||||||
 | 
					        ((stats.mode & 64) > 0 && stats.uid === process.getuid()));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//# sourceMappingURL=io-util.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/io/lib/io-util.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/io/lib/io-util.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					{"version":3,"file":"io-util.js","sourceRoot":"","sources":["../src/io-util.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAyB;AACzB,yBAAwB;AACxB,6BAA4B;AAEf,gBAYE,qTAAA;AAEF,QAAA,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAA;AAEtD,SAAsB,MAAM,CAAC,MAAc;;QACzC,IAAI;YACF,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,CAAA;SACV;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CAAA;AAZD,wBAYC;AAED,SAAsB,WAAW,CAC/B,MAAc,EACd,UAAmB,KAAK;;QAExB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;CAAA;AAND,kCAMC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,CAAS;IAChC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;KAC5D;IAED,IAAI,kBAAU,EAAE;QACd,OAAO,CACL,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8BAA8B;SACxE,CAAA,CAAC,sBAAsB;KACzB;IAED,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AAbD,4BAaC;AAED;;;;;;;;;GASG;AACH,SAAsB,MAAM,CAC1B,MAAc,EACd,WAAmB,IAAI,EACvB,QAAgB,CAAC;;QAEjB,WAAE,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAA;QAE9C,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAE7B,IAAI,KAAK,IAAI,QAAQ;YAAE,OAAO,aAAK,CAAC,MAAM,CAAC,CAAA;QAE3C,IAAI;YACF,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;YACnB,OAAM;SACP;QAAC,OAAO,GAAG,EAAE;YACZ,QAAQ,GAAG,CAAC,IAAI,EAAE;gBAChB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;oBACvD,MAAM,aAAK,CAAC,MAAM,CAAC,CAAA;oBACnB,OAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,IAAI,KAAe,CAAA;oBAEnB,IAAI;wBACF,KAAK,GAAG,MAAM,YAAI,CAAC,MAAM,CAAC,CAAA;qBAC3B;oBAAC,OAAO,IAAI,EAAE;wBACb,MAAM,GAAG,CAAA;qBACV;oBAED,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAAE,MAAM,GAAG,CAAA;iBACpC;aACF;SACF;IACH,CAAC;CAAA;AAlCD,wBAkCC;AAED;;;;;GAKG;AACH,SAAsB,oBAAoB,CACxC,QAAgB,EAChB,UAAoB;;QAEpB,IAAI,KAAK,GAAyB,SAAS,CAAA;QAC3C,IAAI;YACF,mBAAmB;YACnB,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;SAC7B;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;aACF;SACF;QACD,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,kBAAU,EAAE;gBACd,uCAAuC;gBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;gBACrD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,EAAE;oBACpE,OAAO,QAAQ,CAAA;iBAChB;aACF;iBAAM;gBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC3B,OAAO,QAAQ,CAAA;iBAChB;aACF;SACF;QAED,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,QAAQ,CAAA;QACjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,QAAQ,GAAG,gBAAgB,GAAG,SAAS,CAAA;YAEvC,KAAK,GAAG,SAAS,CAAA;YACjB,IAAI;gBACF,KAAK,GAAG,MAAM,YAAI,CAAC,QAAQ,CAAC,CAAA;aAC7B;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,sCAAsC;oBACtC,OAAO,CAAC,GAAG,CACT,uEAAuE,QAAQ,MAAM,GAAG,EAAE,CAC3F,CAAA;iBACF;aACF;YAED,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE;gBAC3B,IAAI,kBAAU,EAAE;oBACd,yEAAyE;oBACzE,IAAI;wBACF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;wBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;wBACvD,KAAK,MAAM,UAAU,IAAI,MAAM,eAAO,CAAC,SAAS,CAAC,EAAE;4BACjD,IAAI,SAAS,KAAK,UAAU,CAAC,WAAW,EAAE,EAAE;gCAC1C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;gCAC3C,MAAK;6BACN;yBACF;qBACF;oBAAC,OAAO,GAAG,EAAE;wBACZ,sCAAsC;wBACtC,OAAO,CAAC,GAAG,CACT,yEAAyE,QAAQ,MAAM,GAAG,EAAE,CAC7F,CAAA;qBACF;oBAED,OAAO,QAAQ,CAAA;iBAChB;qBAAM;oBACL,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;wBAC3B,OAAO,QAAQ,CAAA;qBAChB;iBACF;aACF;SACF;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CAAA;AA5ED,oDA4EC;AAED,SAAS,mBAAmB,CAAC,CAAS;IACpC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;IACX,IAAI,kBAAU,EAAE;QACd,6BAA6B;QAC7B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1B,2BAA2B;QAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;KACjC;IAED,2BAA2B;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjC,CAAC;AAED,qCAAqC;AACrC,6BAA6B;AAC7B,6BAA6B;AAC7B,SAAS,gBAAgB,CAAC,KAAe;IACvC,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACxD,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAC1D,CAAA;AACH,CAAC"}
 | 
				
			||||||
							
								
								
									
										56
									
								
								node_modules/@actions/io/lib/io.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								node_modules/@actions/io/lib/io.d.ts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,56 @@
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Interface for cp/mv options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface CopyOptions {
 | 
				
			||||||
 | 
					    /** Optional. Whether to recursively copy all subdirectories. Defaults to false */
 | 
				
			||||||
 | 
					    recursive?: boolean;
 | 
				
			||||||
 | 
					    /** Optional. Whether to overwrite existing files in the destination. Defaults to true */
 | 
				
			||||||
 | 
					    force?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Interface for cp/mv options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export interface MoveOptions {
 | 
				
			||||||
 | 
					    /** Optional. Whether to overwrite existing files in the destination. Defaults to true */
 | 
				
			||||||
 | 
					    force?: boolean;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Copies a file or folder.
 | 
				
			||||||
 | 
					 * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     source    source path
 | 
				
			||||||
 | 
					 * @param     dest      destination path
 | 
				
			||||||
 | 
					 * @param     options   optional. See CopyOptions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function cp(source: string, dest: string, options?: CopyOptions): Promise<void>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Moves a path.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     source    source path
 | 
				
			||||||
 | 
					 * @param     dest      destination path
 | 
				
			||||||
 | 
					 * @param     options   optional. See MoveOptions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function mv(source: string, dest: string, options?: MoveOptions): Promise<void>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Remove a path recursively with force
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param inputPath path to remove
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function rmRF(inputPath: string): Promise<void>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Make a directory.  Creates the full path with folders in between
 | 
				
			||||||
 | 
					 * Will throw if it fails
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param   fsPath        path to create
 | 
				
			||||||
 | 
					 * @returns Promise<void>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function mkdirP(fsPath: string): Promise<void>;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Returns path of a tool had the tool actually been invoked.  Resolves via paths.
 | 
				
			||||||
 | 
					 * If you check and the tool does not exist, it will throw.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     tool              name of the tool
 | 
				
			||||||
 | 
					 * @param     check             whether to check if tool exists
 | 
				
			||||||
 | 
					 * @returns   Promise<string>   path to tool
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					export declare function which(tool: string, check?: boolean): Promise<string>;
 | 
				
			||||||
							
								
								
									
										290
									
								
								node_modules/@actions/io/lib/io.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										290
									
								
								node_modules/@actions/io/lib/io.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,290 @@
 | 
				
			||||||
 | 
					"use strict";
 | 
				
			||||||
 | 
					var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
 | 
				
			||||||
 | 
					    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
 | 
				
			||||||
 | 
					    return new (P || (P = Promise))(function (resolve, reject) {
 | 
				
			||||||
 | 
					        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
 | 
				
			||||||
 | 
					        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
 | 
				
			||||||
 | 
					        step((generator = generator.apply(thisArg, _arguments || [])).next());
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					Object.defineProperty(exports, "__esModule", { value: true });
 | 
				
			||||||
 | 
					const childProcess = require("child_process");
 | 
				
			||||||
 | 
					const path = require("path");
 | 
				
			||||||
 | 
					const util_1 = require("util");
 | 
				
			||||||
 | 
					const ioUtil = require("./io-util");
 | 
				
			||||||
 | 
					const exec = util_1.promisify(childProcess.exec);
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Copies a file or folder.
 | 
				
			||||||
 | 
					 * Based off of shelljs - https://github.com/shelljs/shelljs/blob/9237f66c52e5daa40458f94f9565e18e8132f5a6/src/cp.js
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     source    source path
 | 
				
			||||||
 | 
					 * @param     dest      destination path
 | 
				
			||||||
 | 
					 * @param     options   optional. See CopyOptions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function cp(source, dest, options = {}) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        const { force, recursive } = readCopyOptions(options);
 | 
				
			||||||
 | 
					        const destStat = (yield ioUtil.exists(dest)) ? yield ioUtil.stat(dest) : null;
 | 
				
			||||||
 | 
					        // Dest is an existing file, but not forcing
 | 
				
			||||||
 | 
					        if (destStat && destStat.isFile() && !force) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // If dest is an existing directory, should copy inside.
 | 
				
			||||||
 | 
					        const newDest = destStat && destStat.isDirectory()
 | 
				
			||||||
 | 
					            ? path.join(dest, path.basename(source))
 | 
				
			||||||
 | 
					            : dest;
 | 
				
			||||||
 | 
					        if (!(yield ioUtil.exists(source))) {
 | 
				
			||||||
 | 
					            throw new Error(`no such file or directory: ${source}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        const sourceStat = yield ioUtil.stat(source);
 | 
				
			||||||
 | 
					        if (sourceStat.isDirectory()) {
 | 
				
			||||||
 | 
					            if (!recursive) {
 | 
				
			||||||
 | 
					                throw new Error(`Failed to copy. ${source} is a directory, but tried to copy without recursive flag.`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                yield cpDirRecursive(source, newDest, 0, force);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            if (path.relative(source, newDest) === '') {
 | 
				
			||||||
 | 
					                // a file cannot be copied to itself
 | 
				
			||||||
 | 
					                throw new Error(`'${newDest}' and '${source}' are the same file`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            yield copyFile(source, newDest, force);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.cp = cp;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Moves a path.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     source    source path
 | 
				
			||||||
 | 
					 * @param     dest      destination path
 | 
				
			||||||
 | 
					 * @param     options   optional. See MoveOptions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function mv(source, dest, options = {}) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if (yield ioUtil.exists(dest)) {
 | 
				
			||||||
 | 
					            let destExists = true;
 | 
				
			||||||
 | 
					            if (yield ioUtil.isDirectory(dest)) {
 | 
				
			||||||
 | 
					                // If dest is directory copy src into dest
 | 
				
			||||||
 | 
					                dest = path.join(dest, path.basename(source));
 | 
				
			||||||
 | 
					                destExists = yield ioUtil.exists(dest);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (destExists) {
 | 
				
			||||||
 | 
					                if (options.force == null || options.force) {
 | 
				
			||||||
 | 
					                    yield rmRF(dest);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    throw new Error('Destination already exists');
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        yield mkdirP(path.dirname(dest));
 | 
				
			||||||
 | 
					        yield ioUtil.rename(source, dest);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.mv = mv;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Remove a path recursively with force
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param inputPath path to remove
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function rmRF(inputPath) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if (ioUtil.IS_WINDOWS) {
 | 
				
			||||||
 | 
					            // Node doesn't provide a delete operation, only an unlink function. This means that if the file is being used by another
 | 
				
			||||||
 | 
					            // program (e.g. antivirus), it won't be deleted. To address this, we shell out the work to rd/del.
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                if (yield ioUtil.isDirectory(inputPath, true)) {
 | 
				
			||||||
 | 
					                    yield exec(`rd /s /q "${inputPath}"`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    yield exec(`del /f /a "${inputPath}"`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (err) {
 | 
				
			||||||
 | 
					                // if you try to delete a file that doesn't exist, desired result is achieved
 | 
				
			||||||
 | 
					                // other errors are valid
 | 
				
			||||||
 | 
					                if (err.code !== 'ENOENT')
 | 
				
			||||||
 | 
					                    throw err;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // Shelling out fails to remove a symlink folder with missing source, this unlink catches that
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                yield ioUtil.unlink(inputPath);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (err) {
 | 
				
			||||||
 | 
					                // if you try to delete a file that doesn't exist, desired result is achieved
 | 
				
			||||||
 | 
					                // other errors are valid
 | 
				
			||||||
 | 
					                if (err.code !== 'ENOENT')
 | 
				
			||||||
 | 
					                    throw err;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            let isDir = false;
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                isDir = yield ioUtil.isDirectory(inputPath);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (err) {
 | 
				
			||||||
 | 
					                // if you try to delete a file that doesn't exist, desired result is achieved
 | 
				
			||||||
 | 
					                // other errors are valid
 | 
				
			||||||
 | 
					                if (err.code !== 'ENOENT')
 | 
				
			||||||
 | 
					                    throw err;
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (isDir) {
 | 
				
			||||||
 | 
					                yield exec(`rm -rf "${inputPath}"`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                yield ioUtil.unlink(inputPath);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.rmRF = rmRF;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Make a directory.  Creates the full path with folders in between
 | 
				
			||||||
 | 
					 * Will throw if it fails
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param   fsPath        path to create
 | 
				
			||||||
 | 
					 * @returns Promise<void>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function mkdirP(fsPath) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        yield ioUtil.mkdirP(fsPath);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.mkdirP = mkdirP;
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Returns path of a tool had the tool actually been invoked.  Resolves via paths.
 | 
				
			||||||
 | 
					 * If you check and the tool does not exist, it will throw.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * @param     tool              name of the tool
 | 
				
			||||||
 | 
					 * @param     check             whether to check if tool exists
 | 
				
			||||||
 | 
					 * @returns   Promise<string>   path to tool
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					function which(tool, check) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if (!tool) {
 | 
				
			||||||
 | 
					            throw new Error("parameter 'tool' is required");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // recursive when check=true
 | 
				
			||||||
 | 
					        if (check) {
 | 
				
			||||||
 | 
					            const result = yield which(tool, false);
 | 
				
			||||||
 | 
					            if (!result) {
 | 
				
			||||||
 | 
					                if (ioUtil.IS_WINDOWS) {
 | 
				
			||||||
 | 
					                    throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else {
 | 
				
			||||||
 | 
					                    throw new Error(`Unable to locate executable file: ${tool}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					            // build the list of extensions to try
 | 
				
			||||||
 | 
					            const extensions = [];
 | 
				
			||||||
 | 
					            if (ioUtil.IS_WINDOWS && process.env.PATHEXT) {
 | 
				
			||||||
 | 
					                for (const extension of process.env.PATHEXT.split(path.delimiter)) {
 | 
				
			||||||
 | 
					                    if (extension) {
 | 
				
			||||||
 | 
					                        extensions.push(extension);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // if it's rooted, return it if exists. otherwise return empty.
 | 
				
			||||||
 | 
					            if (ioUtil.isRooted(tool)) {
 | 
				
			||||||
 | 
					                const filePath = yield ioUtil.tryGetExecutablePath(tool, extensions);
 | 
				
			||||||
 | 
					                if (filePath) {
 | 
				
			||||||
 | 
					                    return filePath;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                return '';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // if any path separators, return empty
 | 
				
			||||||
 | 
					            if (tool.includes('/') || (ioUtil.IS_WINDOWS && tool.includes('\\'))) {
 | 
				
			||||||
 | 
					                return '';
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // build the list of directories
 | 
				
			||||||
 | 
					            //
 | 
				
			||||||
 | 
					            // Note, technically "where" checks the current directory on Windows. From a toolkit perspective,
 | 
				
			||||||
 | 
					            // it feels like we should not do this. Checking the current directory seems like more of a use
 | 
				
			||||||
 | 
					            // case of a shell, and the which() function exposed by the toolkit should strive for consistency
 | 
				
			||||||
 | 
					            // across platforms.
 | 
				
			||||||
 | 
					            const directories = [];
 | 
				
			||||||
 | 
					            if (process.env.PATH) {
 | 
				
			||||||
 | 
					                for (const p of process.env.PATH.split(path.delimiter)) {
 | 
				
			||||||
 | 
					                    if (p) {
 | 
				
			||||||
 | 
					                        directories.push(p);
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // return the first match
 | 
				
			||||||
 | 
					            for (const directory of directories) {
 | 
				
			||||||
 | 
					                const filePath = yield ioUtil.tryGetExecutablePath(directory + path.sep + tool, extensions);
 | 
				
			||||||
 | 
					                if (filePath) {
 | 
				
			||||||
 | 
					                    return filePath;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            return '';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        catch (err) {
 | 
				
			||||||
 | 
					            throw new Error(`which failed with message ${err.message}`);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.which = which;
 | 
				
			||||||
 | 
					function readCopyOptions(options) {
 | 
				
			||||||
 | 
					    const force = options.force == null ? true : options.force;
 | 
				
			||||||
 | 
					    const recursive = Boolean(options.recursive);
 | 
				
			||||||
 | 
					    return { force, recursive };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function cpDirRecursive(sourceDir, destDir, currentDepth, force) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        // Ensure there is not a run away recursive copy
 | 
				
			||||||
 | 
					        if (currentDepth >= 255)
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        currentDepth++;
 | 
				
			||||||
 | 
					        yield mkdirP(destDir);
 | 
				
			||||||
 | 
					        const files = yield ioUtil.readdir(sourceDir);
 | 
				
			||||||
 | 
					        for (const fileName of files) {
 | 
				
			||||||
 | 
					            const srcFile = `${sourceDir}/${fileName}`;
 | 
				
			||||||
 | 
					            const destFile = `${destDir}/${fileName}`;
 | 
				
			||||||
 | 
					            const srcFileStat = yield ioUtil.lstat(srcFile);
 | 
				
			||||||
 | 
					            if (srcFileStat.isDirectory()) {
 | 
				
			||||||
 | 
					                // Recurse
 | 
				
			||||||
 | 
					                yield cpDirRecursive(srcFile, destFile, currentDepth, force);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            else {
 | 
				
			||||||
 | 
					                yield copyFile(srcFile, destFile, force);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // Change the mode for the newly created directory
 | 
				
			||||||
 | 
					        yield ioUtil.chmod(destDir, (yield ioUtil.stat(sourceDir)).mode);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					// Buffered file copy
 | 
				
			||||||
 | 
					function copyFile(srcFile, destFile, force) {
 | 
				
			||||||
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
 | 
					        if ((yield ioUtil.lstat(srcFile)).isSymbolicLink()) {
 | 
				
			||||||
 | 
					            // unlink/re-link it
 | 
				
			||||||
 | 
					            try {
 | 
				
			||||||
 | 
					                yield ioUtil.lstat(destFile);
 | 
				
			||||||
 | 
					                yield ioUtil.unlink(destFile);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            catch (e) {
 | 
				
			||||||
 | 
					                // Try to override file permission
 | 
				
			||||||
 | 
					                if (e.code === 'EPERM') {
 | 
				
			||||||
 | 
					                    yield ioUtil.chmod(destFile, '0666');
 | 
				
			||||||
 | 
					                    yield ioUtil.unlink(destFile);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                // other errors = it doesn't exist, no work to do
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            // Copy over symlink
 | 
				
			||||||
 | 
					            const symlinkFull = yield ioUtil.readlink(srcFile);
 | 
				
			||||||
 | 
					            yield ioUtil.symlink(symlinkFull, destFile, ioUtil.IS_WINDOWS ? 'junction' : null);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else if (!(yield ioUtil.exists(destFile)) || force) {
 | 
				
			||||||
 | 
					            yield ioUtil.copyFile(srcFile, destFile);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					//# sourceMappingURL=io.js.map
 | 
				
			||||||
							
								
								
									
										1
									
								
								node_modules/@actions/io/lib/io.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/@actions/io/lib/io.js.map
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										63
									
								
								node_modules/@actions/io/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								node_modules/@actions/io/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,63 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "_from": "@actions/io@^1.0.1",
 | 
				
			||||||
 | 
					  "_id": "@actions/io@1.0.2",
 | 
				
			||||||
 | 
					  "_inBundle": false,
 | 
				
			||||||
 | 
					  "_integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg==",
 | 
				
			||||||
 | 
					  "_location": "/@actions/io",
 | 
				
			||||||
 | 
					  "_phantomChildren": {},
 | 
				
			||||||
 | 
					  "_requested": {
 | 
				
			||||||
 | 
					    "type": "range",
 | 
				
			||||||
 | 
					    "registry": true,
 | 
				
			||||||
 | 
					    "raw": "@actions/io@^1.0.1",
 | 
				
			||||||
 | 
					    "name": "@actions/io",
 | 
				
			||||||
 | 
					    "escapedName": "@actions%2fio",
 | 
				
			||||||
 | 
					    "scope": "@actions",
 | 
				
			||||||
 | 
					    "rawSpec": "^1.0.1",
 | 
				
			||||||
 | 
					    "saveSpec": null,
 | 
				
			||||||
 | 
					    "fetchSpec": "^1.0.1"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "_requiredBy": [
 | 
				
			||||||
 | 
					    "/@actions/exec"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "_resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz",
 | 
				
			||||||
 | 
					  "_shasum": "2f614b6e69ce14d191180451eb38e6576a6e6b27",
 | 
				
			||||||
 | 
					  "_spec": "@actions/io@^1.0.1",
 | 
				
			||||||
 | 
					  "_where": "/home/dawidd6/github/dawidd6/action-debian-package/node_modules/@actions/exec",
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://github.com/actions/toolkit/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bundleDependencies": false,
 | 
				
			||||||
 | 
					  "deprecated": false,
 | 
				
			||||||
 | 
					  "description": "Actions io lib",
 | 
				
			||||||
 | 
					  "directories": {
 | 
				
			||||||
 | 
					    "lib": "lib",
 | 
				
			||||||
 | 
					    "test": "__tests__"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "files": [
 | 
				
			||||||
 | 
					    "lib"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "homepage": "https://github.com/actions/toolkit/tree/master/packages/io",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "github",
 | 
				
			||||||
 | 
					    "actions",
 | 
				
			||||||
 | 
					    "io"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "main": "lib/io.js",
 | 
				
			||||||
 | 
					  "name": "@actions/io",
 | 
				
			||||||
 | 
					  "publishConfig": {
 | 
				
			||||||
 | 
					    "access": "public"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "git+https://github.com/actions/toolkit.git",
 | 
				
			||||||
 | 
					    "directory": "packages/io"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "audit-moderate": "npm install && npm audit --audit-level=moderate",
 | 
				
			||||||
 | 
					    "test": "echo \"Error: run tests from root\" && exit 1",
 | 
				
			||||||
 | 
					    "tsc": "tsc"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "types": "lib/io.d.ts",
 | 
				
			||||||
 | 
					  "version": "1.0.2"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								node_modules/firstline/.eslintrc.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								node_modules/firstline/.eslintrc.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,18 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "env": {
 | 
				
			||||||
 | 
					    "es6": true,
 | 
				
			||||||
 | 
					    "node": true,
 | 
				
			||||||
 | 
					    "mocha": true
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "extends": "eslint:recommended",
 | 
				
			||||||
 | 
					  "parserOptions": {"sourceType": "module"},
 | 
				
			||||||
 | 
					  "rules": {
 | 
				
			||||||
 | 
					    "indent": ["error", 2],
 | 
				
			||||||
 | 
					    "keyword-spacing": "error",
 | 
				
			||||||
 | 
					    "linebreak-style": "error",
 | 
				
			||||||
 | 
					    "quotes": ["error","single"],
 | 
				
			||||||
 | 
					    "semi": "error",
 | 
				
			||||||
 | 
					    "space-before-blocks": "error",
 | 
				
			||||||
 | 
					    "space-before-function-paren": "error"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								node_modules/firstline/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/firstline/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,15 @@
 | 
				
			||||||
 | 
					language: node_js
 | 
				
			||||||
 | 
					cache:
 | 
				
			||||||
 | 
					  directories:
 | 
				
			||||||
 | 
					    - ~/.npm
 | 
				
			||||||
 | 
					notifications:
 | 
				
			||||||
 | 
					  email: false
 | 
				
			||||||
 | 
					node_js:
 | 
				
			||||||
 | 
					  - node
 | 
				
			||||||
 | 
					  - '6.4.0'
 | 
				
			||||||
 | 
					after_success:
 | 
				
			||||||
 | 
					  - npm run coverage
 | 
				
			||||||
 | 
					  - npm run travis-deploy-once "npm run semantic-release"
 | 
				
			||||||
 | 
					branches:
 | 
				
			||||||
 | 
					  except:
 | 
				
			||||||
 | 
					    - /^v\d+\.\d+\.\d+$/
 | 
				
			||||||
							
								
								
									
										22
									
								
								node_modules/firstline/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								node_modules/firstline/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					The MIT License (MIT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2018 Alessandro Zanardi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
				
			||||||
 | 
					of this software and associated documentation files (the "Software"), to deal
 | 
				
			||||||
 | 
					in the Software without restriction, including without limitation the rights
 | 
				
			||||||
 | 
					to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
				
			||||||
 | 
					copies of the Software, and to permit persons to whom the Software is
 | 
				
			||||||
 | 
					furnished to do so, subject to the following conditions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The above copyright notice and this permission notice shall be included in all
 | 
				
			||||||
 | 
					copies or substantial portions of the Software.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
				
			||||||
 | 
					IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
				
			||||||
 | 
					FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
				
			||||||
 | 
					AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
				
			||||||
 | 
					LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
				
			||||||
 | 
					OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
				
			||||||
 | 
					SOFTWARE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								node_modules/firstline/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								node_modules/firstline/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,50 @@
 | 
				
			||||||
 | 
					# Firstline
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[](https://travis-ci.com/pensierinmusica/firstline)
 | 
				
			||||||
 | 
					[](https://coveralls.io/r/pensierinmusica/firstline)
 | 
				
			||||||
 | 
					[](https://www.npmjs.com/package/firstline)
 | 
				
			||||||
 | 
					[](https://www.npmjs.com/package/firstline)
 | 
				
			||||||
 | 
					[](https://www.npmjs.com/package/firstline)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Introduction
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Firstline is a [npm](http://npmjs.org) async module for [NodeJS](http://nodejs.org/), that **reads and returns the first line of any file**. It uses native JS promises and streams (requires Node >= v6.4.0). It is well tested and built for high performance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It is particularly suited when you need to programmatically access the first line of a large amount of files, while handling errors if they occur.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Install
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`npm install firstline`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`firstline(filePath, [opts])`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- filePath (String): the full path to the file you want to read.
 | 
				
			||||||
 | 
					- opts (Object, optional):
 | 
				
			||||||
 | 
					  - encoding (String), set the file encoding (must be [supported by Node.js](https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings)).
 | 
				
			||||||
 | 
					  - lineEnding (String), the character used for line ending (defaults to `\n`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Incrementally reads data from `filePath` until it reaches the end of the first line.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Returns a promise, eventually fulfilled with a string.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Examples
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```js
 | 
				
			||||||
 | 
					// Imagine the file content is:
 | 
				
			||||||
 | 
					// abc
 | 
				
			||||||
 | 
					// def
 | 
				
			||||||
 | 
					// ghi
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					firstline('./my-file.txt');
 | 
				
			||||||
 | 
					// -> Returns a promise that will be fulfilled with 'abc'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					firstline('./my-file.txt', { lineEnding: '\r' });
 | 
				
			||||||
 | 
					// -> Same as above, but using '\r' as line ending.
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					***
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MIT License
 | 
				
			||||||
							
								
								
									
										30
									
								
								node_modules/firstline/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								node_modules/firstline/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const fs = require('fs');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = (path, usrOpts) => {
 | 
				
			||||||
 | 
					  const opts = {
 | 
				
			||||||
 | 
					    encoding: 'utf8',
 | 
				
			||||||
 | 
					    lineEnding: '\n'
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  Object.assign(opts, usrOpts);
 | 
				
			||||||
 | 
					  return new Promise((resolve, reject) => {
 | 
				
			||||||
 | 
					    const rs = fs.createReadStream(path, {encoding: opts.encoding});
 | 
				
			||||||
 | 
					    let acc = '';
 | 
				
			||||||
 | 
					    let pos = 0;
 | 
				
			||||||
 | 
					    let index;
 | 
				
			||||||
 | 
					    rs
 | 
				
			||||||
 | 
					      .on('data', chunk => {
 | 
				
			||||||
 | 
					        index = chunk.indexOf(opts.lineEnding);
 | 
				
			||||||
 | 
					        acc += chunk;
 | 
				
			||||||
 | 
					        if (index === -1) {
 | 
				
			||||||
 | 
					          pos += chunk.length;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          pos += index;
 | 
				
			||||||
 | 
					          rs.close();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					      .on('close', () => resolve(acc.slice(acc.charCodeAt(0) === 0xFEFF ? 1 : 0, pos)))
 | 
				
			||||||
 | 
					      .on('error', err => reject(err));
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										85
									
								
								node_modules/firstline/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								node_modules/firstline/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,85 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "_from": "firstline",
 | 
				
			||||||
 | 
					  "_id": "firstline@2.0.2",
 | 
				
			||||||
 | 
					  "_inBundle": false,
 | 
				
			||||||
 | 
					  "_integrity": "sha512-8KcmfI0jgSECnzdhucm0i7vrwef3BWwgjimW2YkRC5eSFwjb5DibVoA0YvgkYwwxuJi9c+7M7X3b3lX8o9B6wg==",
 | 
				
			||||||
 | 
					  "_location": "/firstline",
 | 
				
			||||||
 | 
					  "_phantomChildren": {},
 | 
				
			||||||
 | 
					  "_requested": {
 | 
				
			||||||
 | 
					    "type": "tag",
 | 
				
			||||||
 | 
					    "registry": true,
 | 
				
			||||||
 | 
					    "raw": "firstline",
 | 
				
			||||||
 | 
					    "name": "firstline",
 | 
				
			||||||
 | 
					    "escapedName": "firstline",
 | 
				
			||||||
 | 
					    "rawSpec": "",
 | 
				
			||||||
 | 
					    "saveSpec": null,
 | 
				
			||||||
 | 
					    "fetchSpec": "latest"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "_requiredBy": [
 | 
				
			||||||
 | 
					    "#USER",
 | 
				
			||||||
 | 
					    "/"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "_resolved": "https://registry.npmjs.org/firstline/-/firstline-2.0.2.tgz",
 | 
				
			||||||
 | 
					  "_shasum": "3fdfd894a80e181cd2fa478b07cadb8d446c53cd",
 | 
				
			||||||
 | 
					  "_spec": "firstline",
 | 
				
			||||||
 | 
					  "_where": "/home/dawidd6/github/dawidd6/action-debian-package",
 | 
				
			||||||
 | 
					  "author": {
 | 
				
			||||||
 | 
					    "name": "Alessandro Zanardi"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bugs": {
 | 
				
			||||||
 | 
					    "url": "https://github.com/pensierinmusica/firstline/issues"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "bundleDependencies": false,
 | 
				
			||||||
 | 
					  "config": {
 | 
				
			||||||
 | 
					    "commitizen": {
 | 
				
			||||||
 | 
					      "path": "./node_modules/cz-conventional-changelog"
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "deprecated": false,
 | 
				
			||||||
 | 
					  "description": "Async npm module for Node JS that reads the first line of a file",
 | 
				
			||||||
 | 
					  "devDependencies": {
 | 
				
			||||||
 | 
					    "chai": "^4.1.2",
 | 
				
			||||||
 | 
					    "chai-as-promised": "^7.1.1",
 | 
				
			||||||
 | 
					    "coveralls": "^3.0.0",
 | 
				
			||||||
 | 
					    "cz-conventional-changelog": "^2.1.0",
 | 
				
			||||||
 | 
					    "eslint": "^4.19.1",
 | 
				
			||||||
 | 
					    "husky": "^0.14.3",
 | 
				
			||||||
 | 
					    "js-promisify": "^1.1.0",
 | 
				
			||||||
 | 
					    "mocha": "^5.1.1",
 | 
				
			||||||
 | 
					    "nyc": "^11.7.1",
 | 
				
			||||||
 | 
					    "rimraf": "^2.6.2",
 | 
				
			||||||
 | 
					    "semantic-release": "^15.5.0",
 | 
				
			||||||
 | 
					    "travis-deploy-once": "^5.0.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "engines": {
 | 
				
			||||||
 | 
					    "node": ">=6.4.0"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "homepage": "https://github.com/pensierinmusica/firstline",
 | 
				
			||||||
 | 
					  "keywords": [
 | 
				
			||||||
 | 
					    "read",
 | 
				
			||||||
 | 
					    "check",
 | 
				
			||||||
 | 
					    "file",
 | 
				
			||||||
 | 
					    "content",
 | 
				
			||||||
 | 
					    "filesystem",
 | 
				
			||||||
 | 
					    "io",
 | 
				
			||||||
 | 
					    "stream",
 | 
				
			||||||
 | 
					    "async",
 | 
				
			||||||
 | 
					    "promise"
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "license": "MIT",
 | 
				
			||||||
 | 
					  "main": "index.js",
 | 
				
			||||||
 | 
					  "name": "firstline",
 | 
				
			||||||
 | 
					  "repository": {
 | 
				
			||||||
 | 
					    "type": "git",
 | 
				
			||||||
 | 
					    "url": "git+https://github.com/pensierinmusica/firstline.git"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "scripts": {
 | 
				
			||||||
 | 
					    "coverage": "nyc report --reporter=text-lcov | coveralls",
 | 
				
			||||||
 | 
					    "lint": "eslint .",
 | 
				
			||||||
 | 
					    "pre-commit": "npm test",
 | 
				
			||||||
 | 
					    "semantic-release": "semantic-release",
 | 
				
			||||||
 | 
					    "test": "npm run lint && nyc mocha",
 | 
				
			||||||
 | 
					    "travis-deploy-once": "travis-deploy-once --pro"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "version": "2.0.2"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										2
									
								
								node_modules/firstline/test/mocha.opts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								node_modules/firstline/test/mocha.opts
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,2 @@
 | 
				
			||||||
 | 
					--reporter spec
 | 
				
			||||||
 | 
					--ui bdd
 | 
				
			||||||
							
								
								
									
										5
									
								
								node_modules/firstline/test/mocks.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								node_modules/firstline/test/mocks.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										79
									
								
								node_modules/firstline/test/test.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								node_modules/firstline/test/test.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,79 @@
 | 
				
			||||||
 | 
					'use strict';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const promisify = require('js-promisify');
 | 
				
			||||||
 | 
					const chai = require('chai');
 | 
				
			||||||
 | 
					const chaiAsPromised = require('chai-as-promised');
 | 
				
			||||||
 | 
					const fs = require('fs');
 | 
				
			||||||
 | 
					const path = require('path');
 | 
				
			||||||
 | 
					const rimraf = require('rimraf');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const firstline = require('../index.js');
 | 
				
			||||||
 | 
					const mocks = require('./mocks.js');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					chai.should();
 | 
				
			||||||
 | 
					chai.use(chaiAsPromised);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('firstline', () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const dirPath = path.join(__dirname, 'tmp/');
 | 
				
			||||||
 | 
					  const filePath = dirPath + 'test.txt';
 | 
				
			||||||
 | 
					  const wrongFilePath = dirPath + 'no-test.txt';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  before(() => fs.mkdirSync(dirPath)); // Make "tmp" folder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  after(() => rimraf.sync(dirPath)); // Delete "tmp" folder
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  describe('#check', () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    afterEach(() => rimraf.sync(filePath)); // Delete mock CSV file
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should reject if the file does not exist',
 | 
				
			||||||
 | 
					      () => firstline(wrongFilePath).should.be.rejected
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should return the first line of a file and default to `\\n` line ending',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, 'abc\ndef\nghi'])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath).should.eventually.equal('abc'))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should work correctly if the first line is long',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, mocks.longLine])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath).should.eventually.equal(mocks.longLine.split('\n')[0]))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should return an empty line if the file is empty',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, ''])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath).should.eventually.equal(''))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should work with a different encoding when specified correctly',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, 'abc\ndef\nghi', { encoding: 'ascii' }])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath, { encoding: 'ascii' }).should.eventually.equal('abc'))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should work with a different line ending when specified correctly',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, 'abc\rdef\rghi'])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath, { lineEnding: '\r' }).should.eventually.equal('abc'))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should return the entire file if the specified line ending is wrong',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, 'abc\ndef\nghi'])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath, { lineEnding: '\r' }).should.eventually.equal('abc\ndef\nghi'))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    it(
 | 
				
			||||||
 | 
					      'should handle BOM',
 | 
				
			||||||
 | 
					      () => promisify(fs.writeFile, [filePath, '\uFEFFabc\ndef'])
 | 
				
			||||||
 | 
					        .then(() => firstline(filePath).should.eventually.equal('abc'))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
							
								
								
									
										30
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								package-lock.json
									
										
									
										generated
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,30 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "action-debian-package",
 | 
				
			||||||
 | 
					  "requires": true,
 | 
				
			||||||
 | 
					  "lockfileVersion": 1,
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@actions/core": {
 | 
				
			||||||
 | 
					      "version": "1.2.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.2.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@actions/exec": {
 | 
				
			||||||
 | 
					      "version": "1.0.3",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.0.3.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-TogJGnueOmM7ntCi0ASTUj4LapRRtDfj57Ja4IhPmg2fls28uVOPbAn8N+JifaOumN2UG3oEO/Ixek2A4NcYSA==",
 | 
				
			||||||
 | 
					      "requires": {
 | 
				
			||||||
 | 
					        "@actions/io": "^1.0.1"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "@actions/io": {
 | 
				
			||||||
 | 
					      "version": "1.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-J8KuFqVPr3p6U8W93DOXlXW6zFvrQAJANdS+vw0YhusLIq+bszW8zmK2Fh1C2kDPX8FMvwIl1OUcFgvJoXLbAg=="
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "firstline": {
 | 
				
			||||||
 | 
					      "version": "2.0.2",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/firstline/-/firstline-2.0.2.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-8KcmfI0jgSECnzdhucm0i7vrwef3BWwgjimW2YkRC5eSFwjb5DibVoA0YvgkYwwxuJi9c+7M7X3b3lX8o9B6wg=="
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										8
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								package.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  "name": "action-debian-package",
 | 
				
			||||||
 | 
					  "dependencies": {
 | 
				
			||||||
 | 
					    "@actions/core": "^1.2.3",
 | 
				
			||||||
 | 
					    "@actions/exec": "^1.0.3",
 | 
				
			||||||
 | 
					    "firstline": "^2.0.2"
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue