Skip to content

Commit

Permalink
Fix #8 (#9)
Browse files Browse the repository at this point in the history
* Fix #8
  • Loading branch information
archive authored Sep 25, 2020
1 parent 3120c6f commit ad740a0
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 25 deletions.
124 changes: 102 additions & 22 deletions dist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,32 @@ const sendMessage = async (token, message) => {
module.exports = sendMessage;


/***/ }),

/***/ 82:
/***/ (function(__unusedmodule, exports) {

"use strict";

// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
*/
function toCommandValue(input) {
if (input === null || input === undefined) {
return '';
}
else if (typeof input === 'string' || input instanceof String) {
return input;
}
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
//# sourceMappingURL=utils.js.map

/***/ }),

/***/ 87:
Expand All @@ -116,6 +142,42 @@ module.exports = require("os");

/***/ }),

/***/ 102:
/***/ (function(__unusedmodule, exports, __webpack_require__) {

"use strict";

// For internal use, subject to change.
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 });
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
const fs = __importStar(__webpack_require__(747));
const os = __importStar(__webpack_require__(87));
const utils_1 = __webpack_require__(82);
function issueCommand(command, message) {
const filePath = process.env[`GITHUB_${command}`];
if (!filePath) {
throw new Error(`Unable to find environment variable for file command ${command}`);
}
if (!fs.existsSync(filePath)) {
throw new Error(`Missing file at path: ${filePath}`);
}
fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {
encoding: 'utf8'
});
}
exports.issueCommand = issueCommand;
//# sourceMappingURL=file-command.js.map

/***/ }),

/***/ 104:
/***/ (function(__unusedmodule, __unusedexports, __webpack_require__) {

Expand Down Expand Up @@ -186,19 +248,27 @@ module.exports = require("https");
/***/ 325:
/***/ (function(module) {

const buildMessage = (channel, text, optional = {}) => {
const buildMessage = (channel = "", text = "", optional = {}) => {
const message = {
channel,
text
text,
};

Object.keys(optional).forEach(name => {
message.text = restoreEscapedNewLine(message.text);
message.text = restoreEscapedTab(message.text);

Object.keys(optional).forEach((name) => {
message[name] = optional[name];
});

return message;
};

const restoreEscapedNewLine = (text) =>
text.replace(/\\r\\n/g, "\n").replace(/\\n/g, "\n");

const restoreEscapedTab = (text) => text.replace(/\\t/g, "\t");

module.exports = buildMessage;


Expand All @@ -218,6 +288,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
const os = __importStar(__webpack_require__(87));
const utils_1 = __webpack_require__(82);
/**
* Commands
*
Expand Down Expand Up @@ -271,28 +342,14 @@ class Command {
return cmdStr;
}
}
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
*/
function toCommandValue(input) {
if (input === null || input === undefined) {
return '';
}
else if (typeof input === 'string' || input instanceof String) {
return input;
}
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
function escapeData(s) {
return toCommandValue(s)
return utils_1.toCommandValue(s)
.replace(/%/g, '%25')
.replace(/\r/g, '%0D')
.replace(/\n/g, '%0A');
}
function escapeProperty(s) {
return toCommandValue(s)
return utils_1.toCommandValue(s)
.replace(/%/g, '%25')
.replace(/\r/g, '%0D')
.replace(/\n/g, '%0A')
Expand Down Expand Up @@ -349,6 +406,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = __webpack_require__(431);
const file_command_1 = __webpack_require__(102);
const utils_1 = __webpack_require__(82);
const os = __importStar(__webpack_require__(87));
const path = __importStar(__webpack_require__(622));
/**
Expand All @@ -375,9 +434,17 @@ var ExitCode;
*/
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function exportVariable(name, val) {
const convertedVal = command_1.toCommandValue(val);
const convertedVal = utils_1.toCommandValue(val);
process.env[name] = convertedVal;
command_1.issueCommand('set-env', { name }, convertedVal);
const filePath = process.env['GITHUB_ENV'] || '';
if (filePath) {
const delimiter = '_GitHubActionsFileCommandDelimeter_';
const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
file_command_1.issueCommand('ENV', commandValue);
}
else {
command_1.issueCommand('set-env', { name }, convertedVal);
}
}
exports.exportVariable = exportVariable;
/**
Expand All @@ -393,7 +460,13 @@ exports.setSecret = setSecret;
* @param inputPath
*/
function addPath(inputPath) {
command_1.issueCommand('add-path', {}, inputPath);
const filePath = process.env['GITHUB_PATH'] || '';
if (filePath) {
file_command_1.issueCommand('PATH', inputPath);
}
else {
command_1.issueCommand('add-path', {}, inputPath);
}
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
}
exports.addPath = addPath;
Expand Down Expand Up @@ -560,6 +633,13 @@ exports.getState = getState;

module.exports = require("path");

/***/ }),

/***/ 747:
/***/ (function(module) {

module.exports = require("fs");

/***/ })

/******/ });
14 changes: 11 additions & 3 deletions src/build-message.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,22 @@
const buildMessage = (channel, text, optional = {}) => {
const buildMessage = (channel = "", text = "", optional = {}) => {
const message = {
channel,
text
text,
};

Object.keys(optional).forEach(name => {
message.text = restoreEscapedNewLine(message.text);
message.text = restoreEscapedTab(message.text);

Object.keys(optional).forEach((name) => {
message[name] = optional[name];
});

return message;
};

const restoreEscapedNewLine = (text) =>
text.replace(/\\r\\n/g, "\n").replace(/\\n/g, "\n");

const restoreEscapedTab = (text) => text.replace(/\\t/g, "\t");

module.exports = buildMessage;

0 comments on commit ad740a0

Please sign in to comment.