1
0
mirror of https://github.com/Minionguyjpro/Inno-Setup-Action synced 2026-02-18 17:41:18 +01:00
Files
inno-setup/src/main.js
Minionguyjpro 3fb217a885 Update main.js
2024-01-02 19:59:44 +01:00

45 lines
1.6 KiB
JavaScript

// Importing necessary modules
const core = require('@actions/core')
const fs = require('fs')
// Getting the path to the workspace from environment variables
const workspacePath = process.env.GITHUB_WORKSPACE
// Getting inputs from the workflow
const options = core.getInput('options')
const path = core.getInput('path')
// Importing the child_process module for executing shell commands
const exec = require('child_process').exec
// Initializing an error variable
let error;
// Checking if the platform is Windows
if (process.platform === 'win32') {
// Checking if the GitHub workspace exists and is not empty
if (fs.existsSync(process.env.GITHUB_WORKSPACE) && fs.readdirSync(workspacePath).length > 0) {
// Building and executing the Inno Setup compiler command
exec(`"%PROGRAMFILES(X86)%\\Inno Setup 6\\iscc.exe" ${options} "${workspacePath}\\${path}"`, { stdio: 'ignore' }, function (error, stdout, stderr) {
// Logging the standard output of the command
console.log(stdout)
// Handling errors, if any
if (error) {
core.setFailed(stderr)
process.exit(error.code || 1)
}
});
} else {
// Setting an error code and failing the workflow if the repository is not cloned
error = { code: 1 }
core.setFailed('The repository was not cloned. Please specify the actions/checkout action before this step.');
process.exit(error.code)
}
} else {
// Setting an error code and failing the workflow if the platform is not Windows
error = { code: 1 };
core.setFailed('This action is only supported on Windows!')
process.exit(error.code)
}