serverless/lib/utils/renameService.js
Mariusz Nowak 4944f471b1
Prettify
2019-06-26 12:43:01 +02:00

44 lines
1.3 KiB
JavaScript

'use strict';
const path = require('path');
const fse = require('fs-extra');
const fileExistsSync = require('./fs/fileExistsSync');
const readFileSync = require('./fs/readFileSync');
const writeFileSync = require('./fs/writeFileSync');
const ServerlessError = require('../classes/Error').ServerlessError;
function renameService(name, servicePath) {
const serviceFile = path.join(servicePath, 'serverless.yml');
const packageFile = path.join(servicePath, 'package.json');
if (!fileExistsSync(serviceFile)) {
const errorMessage = ['serverless.yml not found in', ` ${servicePath}`].join('');
throw new ServerlessError(errorMessage);
}
const serverlessYml = fse
.readFileSync(serviceFile, 'utf-8')
.replace(/service\s*:.+/gi, match => {
const fractions = match.split('#');
fractions[0] = `service: ${name}`;
return fractions.join(' #');
})
.replace(/service\s*:\n {2}name:.+/gi, match => {
const fractions = match.split('#');
fractions[0] = `service:\n name: ${name}`;
return fractions.join(' #');
});
fse.writeFileSync(serviceFile, serverlessYml);
if (fileExistsSync(packageFile)) {
const json = readFileSync(packageFile);
writeFileSync(packageFile, Object.assign(json, { name }));
}
return name;
}
module.exports.renameService = renameService;