Take the password from stdin

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2020-09-24 20:21:04 +02:00
parent 53f337dbae
commit 6e236fe59d
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
3 changed files with 15 additions and 8 deletions

9
dist/index.js generated vendored
View file

@ -2908,12 +2908,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.exec = void 0; exports.exec = void 0;
const actionsExec = __importStar(__webpack_require__(514)); const actionsExec = __importStar(__webpack_require__(514));
exports.exec = (command, args = [], silent) => __awaiter(void 0, void 0, void 0, function* () { exports.exec = (command, args = [], silent, stdin) => __awaiter(void 0, void 0, void 0, function* () {
let stdout = ''; let stdout = '';
let stderr = ''; let stderr = '';
const options = { const options = {
silent: silent, silent: silent,
ignoreReturnCode: true ignoreReturnCode: true,
input: Buffer.from(stdin || '')
}; };
options.listeners = { options.listeners = {
stdout: (data) => { stdout: (data) => {
@ -2995,7 +2996,7 @@ function logout(registry) {
exports.logout = logout; exports.logout = logout;
function loginStandard(registry, username, password) { function loginStandard(registry, username, password) {
return __awaiter(this, void 0, void 0, function* () { return __awaiter(this, void 0, void 0, function* () {
let loginArgs = ['login', '--password', password]; let loginArgs = ['login', '--password-stdin'];
if (username) { if (username) {
loginArgs.push('--username', username); loginArgs.push('--username', username);
} }
@ -3006,7 +3007,7 @@ function loginStandard(registry, username, password) {
else { else {
core.info(`🔑 Logging into DockerHub...`); core.info(`🔑 Logging into DockerHub...`);
} }
yield execm.exec('docker', loginArgs, true).then(res => { yield execm.exec('docker', loginArgs, true, password).then(res => {
if (res.stderr != '' && !res.success) { if (res.stderr != '' && !res.success) {
throw new Error(res.stderr); throw new Error(res.stderr);
} }

View file

@ -19,7 +19,7 @@ export async function logout(registry: string): Promise<void> {
} }
export async function loginStandard(registry: string, username: string, password: string): Promise<void> { export async function loginStandard(registry: string, username: string, password: string): Promise<void> {
let loginArgs: Array<string> = ['login', '--password', password]; let loginArgs: Array<string> = ['login', '--password-stdin'];
if (username) { if (username) {
loginArgs.push('--username', username); loginArgs.push('--username', username);
} }
@ -30,7 +30,7 @@ export async function loginStandard(registry: string, username: string, password
} else { } else {
core.info(`🔑 Logging into DockerHub...`); core.info(`🔑 Logging into DockerHub...`);
} }
await execm.exec('docker', loginArgs, true).then(res => { await execm.exec('docker', loginArgs, true, password).then(res => {
if (res.stderr != '' && !res.success) { if (res.stderr != '' && !res.success) {
throw new Error(res.stderr); throw new Error(res.stderr);
} }

View file

@ -7,13 +7,19 @@ export interface ExecResult {
stderr: string; stderr: string;
} }
export const exec = async (command: string, args: string[] = [], silent: boolean): Promise<ExecResult> => { export const exec = async (
command: string,
args: string[] = [],
silent: boolean,
stdin?: string
): Promise<ExecResult> => {
let stdout: string = ''; let stdout: string = '';
let stderr: string = ''; let stderr: string = '';
const options: ExecOptions = { const options: ExecOptions = {
silent: silent, silent: silent,
ignoreReturnCode: true ignoreReturnCode: true,
input: Buffer.from(stdin || '')
}; };
options.listeners = { options.listeners = {
stdout: (data: Buffer) => { stdout: (data: Buffer) => {