You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.2 KiB
114 lines
3.2 KiB
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.applyNameSettingsGradle = applyNameSettingsGradle;
|
|
exports.getName = getName;
|
|
exports.sanitizeNameForGradle = sanitizeNameForGradle;
|
|
exports.withNameSettingsGradle = exports.withName = void 0;
|
|
|
|
function _androidPlugins() {
|
|
const data = require("../plugins/android-plugins");
|
|
|
|
_androidPlugins = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _warnings() {
|
|
const data = require("../utils/warnings");
|
|
|
|
_warnings = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _Resources() {
|
|
const data = require("./Resources");
|
|
|
|
_Resources = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
function _Strings() {
|
|
const data = require("./Strings");
|
|
|
|
_Strings = function () {
|
|
return data;
|
|
};
|
|
|
|
return data;
|
|
}
|
|
|
|
/**
|
|
* Sanitize a name, this should be used for files and gradle names.
|
|
* - `[/, \, :, <, >, ", ?, *, |]` are not allowed
|
|
* https://docs.gradle.org/4.2/release-notes.html#path-separator-characters-in-names-are-deprecated
|
|
*
|
|
* @param name
|
|
*/
|
|
function sanitizeNameForGradle(name) {
|
|
// Remove escape characters which are valid in XML names but not in gradle.
|
|
name = name.replace(/[\n\r\t]/g, ''); // Gradle disallows these:
|
|
// The project name 'My-Special 😃 Co/ol_Project' must not contain any of the following characters: [/, \, :, <, >, ", ?, *, |]. Set the 'rootProject.name' or adjust the 'include' statement (see https://docs.gradle.org/6.2/dsl/org.gradle.api.initialization.Settings.html#org.gradle.api.initialization.Settings:include(java.lang.String[]) for more details).
|
|
|
|
return name.replace(/(\/|\\|:|<|>|"|\?|\*|\|)/g, '');
|
|
}
|
|
|
|
const withName = (0, _androidPlugins().createStringsXmlPlugin)(applyNameFromConfig, 'withName');
|
|
exports.withName = withName;
|
|
|
|
const withNameSettingsGradle = config => {
|
|
return (0, _androidPlugins().withSettingsGradle)(config, config => {
|
|
if (config.modResults.language === 'groovy') {
|
|
config.modResults.contents = applyNameSettingsGradle(config, config.modResults.contents);
|
|
} else {
|
|
(0, _warnings().addWarningAndroid)('name', `Cannot automatically configure settings.gradle if it's not groovy`);
|
|
}
|
|
|
|
return config;
|
|
});
|
|
};
|
|
|
|
exports.withNameSettingsGradle = withNameSettingsGradle;
|
|
|
|
function getName(config) {
|
|
return typeof config.name === 'string' ? config.name : null;
|
|
}
|
|
|
|
function applyNameFromConfig(config, stringsJSON) {
|
|
const name = getName(config);
|
|
|
|
if (name) {
|
|
return (0, _Strings().setStringItem)([(0, _Resources().buildResourceItem)({
|
|
name: 'app_name',
|
|
value: name
|
|
})], stringsJSON);
|
|
}
|
|
|
|
return (0, _Strings().removeStringItem)('app_name', stringsJSON);
|
|
}
|
|
/**
|
|
* Regex a name change -- fragile.
|
|
*
|
|
* @param config
|
|
* @param settingsGradle
|
|
*/
|
|
|
|
|
|
function applyNameSettingsGradle(config, settingsGradle) {
|
|
var _getName;
|
|
|
|
const name = sanitizeNameForGradle((_getName = getName(config)) !== null && _getName !== void 0 ? _getName : ''); // Select rootProject.name = '***' and replace the contents between the quotes.
|
|
|
|
return settingsGradle.replace(/rootProject.name\s?=\s?(["'])(?:(?=(\\?))\2.)*?\1/g, `rootProject.name = '${name.replace(/'/g, "\\'")}'`);
|
|
}
|
|
//# sourceMappingURL=Name.js.map
|