setup-java/src/auth.ts

45 lines
1.3 KiB
TypeScript
Raw Normal View History

2019-11-16 01:01:13 +01:00
import * as fs from 'fs';
import * as os from 'os';
import * as path from 'path';
import * as core from '@actions/core';
import * as io from '@actions/io';
export const M2_DIR = '.m2';
export const SETTINGS_FILE = 'settings.xml';
2019-11-28 21:40:08 +01:00
export async function configAuthentication(id: string, username: string, password: string) {
if (id && username && password) {
core.debug(`configAuthentication with ${username} and a password`);
const directory: string = path.join(os.homedir(), M2_DIR);
await io.mkdirP(directory);
core.debug(`created directory ${directory}`);
2019-11-28 21:40:08 +01:00
await write(directory, generate(id, username, password));
} else {
core.debug(
`no auth without username: ${username} and password: ${password}`
);
}
2019-11-16 01:01:13 +01:00
}
// only exported for testing purposes
2019-11-28 21:40:08 +01:00
export function generate(id: string, username: string, password: string) {
return `
<settings>
<servers>
<server>
2019-11-28 21:40:08 +01:00
<id>${id}</id>
<username>${username}</username>
<password>${password}</password>
</server>
</servers>
</settings>
`;
2019-11-16 01:01:13 +01:00
}
async function write(directory: string, settings: string) {
const options = {encoding: 'utf-8'};
const location = path.join(directory, SETTINGS_FILE);
core.debug(`writing ${location}`);
return fs.writeFileSync(location, settings, options);
2019-11-16 01:01:13 +01:00
}