diff --git a/lib/authutil.js b/lib/authutil.js index 3ce05bbf..bd7e222c 100644 --- a/lib/authutil.js +++ b/lib/authutil.js @@ -1,4 +1,12 @@ "use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + 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) : new P(function (resolve) { resolve(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 = {}; @@ -7,27 +15,26 @@ var __importStar = (this && this.__importStar) || function (mod) { return result; }; Object.defineProperty(exports, "__esModule", { value: true }); -const fs = __importStar(require("fs")); -const os = __importStar(require("os")); const path = __importStar(require("path")); +const exec = __importStar(require("@actions/exec")); function configAuth(registryUrl) { - let npmrc = path.resolve(process.cwd(), '.npmrc'); - let yarnrc = path.resolve(process.cwd(), '.yarnrc'); - writeRegistryToFile(registryUrl, npmrc, 'NPM_TOKEN'); - writeRegistryToFile(registryUrl, yarnrc, 'YARN_TOKEN'); + return __awaiter(this, void 0, void 0, function* () { + let npmrc = path.resolve(process.cwd(), '.npmrc'); + let yarnrc = path.resolve(process.cwd(), '.yarnrc'); + writeRegistryToFile(registryUrl, 'npm', 'NPM_TOKEN'); + writeRegistryToFile(registryUrl, 'yarn', 'YARN_TOKEN'); + }); } exports.configAuth = configAuth; -function writeRegistryToFile(registryUrl, fileLocation, authTokenName) { - let newContents = ''; - if (fs.existsSync(fileLocation)) { - const curContents = fs.readFileSync(fileLocation, 'utf8'); - curContents.split(os.EOL).forEach((line) => { - // Add current contents unless they are setting the registry - if (!line.startsWith('registry')) { - newContents += line + os.EOL; - } - }); - } - newContents += 'registry=' + registryUrl + os.EOL + 'always-auth=true' + os.EOL + registryUrl.replace(/(^\w+:|^)/, '') + ':_authToken=${' + authTokenName + '}'; - fs.writeFileSync(fileLocation, newContents); +function writeRegistryToFile(registryUrl, packageManager, authTokenName) { + return __awaiter(this, void 0, void 0, function* () { + yield exec.exec(`${packageManager} config set registry=${registryUrl}`); + yield exec.exec(`${packageManager} config set always-auth=true`); + yield exec.exec(packageManager + + ' config set ' + + registryUrl.replace(/(^\w+:|^)/, '') + + ':_authToken ${' + + authTokenName + + '}'); + }); } diff --git a/src/authutil.ts b/src/authutil.ts index baa21c9d..2a6d52c8 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -1,39 +1,29 @@ import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; +import * as exec from '@actions/exec'; -export function configAuth(registryUrl: string) { +export async function configAuth(registryUrl: string) { let npmrc: string = path.resolve(process.cwd(), '.npmrc'); let yarnrc: string = path.resolve(process.cwd(), '.yarnrc'); - writeRegistryToFile(registryUrl, npmrc, 'NPM_TOKEN'); - writeRegistryToFile(registryUrl, yarnrc, 'YARN_TOKEN'); + writeRegistryToFile(registryUrl, 'npm', 'NPM_TOKEN'); + writeRegistryToFile(registryUrl, 'yarn', 'YARN_TOKEN'); } -function writeRegistryToFile( +async function writeRegistryToFile( registryUrl: string, - fileLocation: string, + packageManager: string, authTokenName: string ) { - let newContents = ''; - if (fs.existsSync(fileLocation)) { - const curContents = fs.readFileSync(fileLocation, 'utf8'); - curContents.split(os.EOL).forEach((line: string) => { - // Add current contents unless they are setting the registry - if (!line.startsWith('registry')) { - newContents += line + os.EOL; - } - }); - } - newContents += - 'registry=' + - registryUrl + - os.EOL + - 'always-auth=true' + - os.EOL + - registryUrl.replace(/(^\w+:|^)/, '') + - ':_authToken=${' + - authTokenName + - '}'; - fs.writeFileSync(fileLocation, newContents); + await exec.exec(`${packageManager} config set registry=${registryUrl}`); + await exec.exec(`${packageManager} config set always-auth=true`); + await exec.exec( + packageManager + + ' config set ' + + registryUrl.replace(/(^\w+:|^)/, '') + + ':_authToken ${' + + authTokenName + + '}' + ); }