use of org.eclipse.n4js.cli.init.InitResources.PackageJsonContents in project n4js by eclipse.
the class InitDialog method customizeConfiguration.
static void customizeConfiguration(N4jscOptions options, InitConfiguration config, UserAnswers answers) {
addExamples(config, answers);
if (!Strings.isNullOrEmpty(answers.nameYarnProject) && options.isCreate() && options.isWorkspaces()) {
config.yarnPackageJson.name = answers.nameYarnProject;
}
PackageJsonContents packjson = config.packageJson;
if (!Strings.isNullOrEmpty(answers.nameProject) && !options.isN4JS()) {
packjson.name = answers.nameProject;
packjson.userModifications.add("name");
}
if (!Strings.isNullOrEmpty(answers.version)) {
packjson.version = answers.version;
packjson.userModifications.add("version");
}
if (!Strings.isNullOrEmpty(answers.main_module) && !Objects.equal(answers.main_module, packjson.main)) {
Pair<URI, URI> moduleNames = interpretModuleNames(answers.main_module);
packjson.main = moduleNames.getKey().toFileString();
packjson.n4js.mainModule = URIUtils.trimFileExtension(moduleNames.getValue()).toFileString();
config.files.add(new IndexFile(moduleNames.getValue().toFileString()));
packjson.userModifications.add("main");
packjson.userModifications.add("n4js");
}
if (!Strings.isNullOrEmpty(answers.author)) {
packjson.author = answers.author;
packjson.userModifications.add("author");
}
if (!Strings.isNullOrEmpty(answers.license)) {
packjson.license = answers.license;
packjson.userModifications.add("license");
}
if (!Strings.isNullOrEmpty(answers.description)) {
packjson.description = answers.description;
packjson.userModifications.add("description");
}
}
use of org.eclipse.n4js.cli.init.InitResources.PackageJsonContents in project n4js by eclipse.
the class InitDialog method inputUserAnswers.
static UserAnswers inputUserAnswers(N4jscOptions options, InitConfiguration config, WorkingDirState workingDirState) {
UserAnswers answers = new UserAnswers();
String userInput = null;
if (options.isCreate() && options.isWorkspaces() && workingDirState == WorkingDirState.InEmptyFolder) {
N4jscConsole.print(String.format("name of yarn project: (%s) ", config.yarnPackageJson.name));
userInput = N4jscConsole.readLine();
answers.nameYarnProject = userInput.isBlank() ? config.yarnPackageJson.name : userInput;
}
PackageJsonContents defaults = config.packageJson;
if (!options.isN4JS()) {
// in case of extending an already existing project to n4js, the name is not changed
userInput = readValidInput(input -> input.startsWith("@") && input.contains("/"), String.format("name: (%s) ", defaults.name), "Valid project names of scoped projects must start with '@' and contain a single '/'.");
answers.nameProject = userInput.isBlank() ? defaults.name : userInput;
}
N4jscConsole.print("Add 'Hello World' example? (type 'y' for yes) (no) ");
userInput = N4jscConsole.readLine();
answers.addHelloWorld = isYes(userInput);
if (answers.addHelloWorld) {
N4jscConsole.print("Add Test for 'Hello World' example? (type 'y' for yes) (no) ");
userInput = N4jscConsole.readLine();
answers.addHelloWorldTest = isYes(userInput);
}
N4jscConsole.print(String.format("version: (%s) ", Strings.nullToEmpty(defaults.version)));
userInput = N4jscConsole.readLine();
answers.version = userInput.isBlank() ? defaults.version : userInput;
N4jscConsole.print(String.format("main module: (%s) ", Strings.nullToEmpty(defaults.main)));
userInput = N4jscConsole.readLine();
answers.main_module = userInput.isBlank() ? defaults.main : userInput;
N4jscConsole.print(String.format("author: (%s) ", Strings.nullToEmpty(defaults.author)));
userInput = N4jscConsole.readLine();
answers.author = userInput.isBlank() ? defaults.author : userInput;
N4jscConsole.print(String.format("license: (%s) ", Strings.nullToEmpty(defaults.license)));
userInput = N4jscConsole.readLine();
answers.license = userInput.isBlank() ? defaults.license : userInput;
N4jscConsole.print(String.format("description: (%s) ", Strings.nullToEmpty(defaults.description)));
userInput = N4jscConsole.readLine();
answers.description = userInput.isBlank() ? defaults.description : userInput;
return answers;
}
Aggregations