package org.angularjs.cli; import com.intellij.execution.filters.Filter; import com.intellij.lang.javascript.boilerplate.NpmPackageProjectGenerator; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.ArrayUtil; import icons.AngularJSIcons; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.io.File; /** * @author Dennis.Ushakov */ public class AngularCLIProjectGenerator extends NpmPackageProjectGenerator { public static final String PACKAGE_NAME = "@angular/cli"; @Nls @NotNull @Override public String getName() { return "Angular CLI"; } @Override public String getDescription() { return "The Angular CLI makes it easy to create an application that already works, right out of the box. It already follows our best practices!"; } @Override public Icon getIcon() { return AngularJSIcons.Angular2; } @Override protected void customizeModule(@NotNull VirtualFile baseDir, ContentEntry entry) { if (entry != null) { AngularJSProjectConfigurator.excludeDefault(baseDir, entry); } } @Override @NotNull protected String[] generatorArgs(@NotNull Project project, @NotNull VirtualFile baseDir) { return ArrayUtil.EMPTY_STRING_ARRAY; } @Override @NotNull protected String[] generatorArgs(@NotNull Project project, @NotNull VirtualFile baseDir, @NotNull Settings settings) { return new String[]{"new", baseDir.getName(), "--dir=."}; } @NotNull @Override protected Filter[] filters(@NotNull Project project, @NotNull VirtualFile baseDir) { return new Filter[] {new AngularCLIFilter(project, baseDir.getPath())}; } @Override @NotNull protected String executable(String path) { return ng(path); } @NotNull public static String ng(String path) { return path + File.separator + "bin" + File.separator + "ng"; } @Override @NotNull protected String packageName() { return PACKAGE_NAME; } @Override @NotNull protected String presentablePackageName() { return "Angular &CLI:"; } }