package com.jetbrains.lang.dart.projectWizard; import com.intellij.openapi.module.Module; import com.intellij.openapi.vfs.VfsUtil; import com.intellij.openapi.vfs.VirtualFile; import com.jetbrains.lang.dart.DartBundle; import com.jetbrains.lang.dart.util.PubspecYamlUtil; import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Collection; import java.util.Locale; class CmdLineAppTemplate extends DartProjectTemplate { public CmdLineAppTemplate() { super(DartBundle.message("dart.commandline.app.title"), ""); } @Override public Collection<VirtualFile> generateProject(@NotNull final String sdkRoot, @NotNull final Module module, @NotNull final VirtualFile baseDir) throws IOException { final VirtualFile pubspecFile = baseDir.createChildData(this, PubspecYamlUtil.PUBSPEC_YAML); pubspecFile.setBinaryContent(("name: " + module.getName() + "\n" + "version: 0.0.1\n" + "description: A sample command-line application\n" + "dependencies:\n" + "\n" + "dev_dependencies:\n" + "# unittest: any\n").getBytes(Charset.forName("UTF-8"))); final VirtualFile binDir = VfsUtil.createDirectoryIfMissing(baseDir, "bin"); final VirtualFile mainFile = binDir.createChildData(this, module.getName().toLowerCase(Locale.US) + ".dart"); mainFile.setBinaryContent(("void main() {\n" + " print('Hello, World!');\n" + "}\n").getBytes(Charset.forName("UTF-8"))); createCmdLineRunConfiguration(module, mainFile); return Arrays.asList(pubspecFile, mainFile); } }