/// <summary> /// Runs the "flutter create -t package" command to create a Flutter package. /// </summary> /// <returns>A <see cref="Flutnet.Cli.Core.Dart.DartProject"/> that represents the newly created Flutter package.</returns> public static DartProject CreatePackage(string workingDir, string name, string description = null, bool verbose = false) { StringBuilder sb = new StringBuilder(); sb.Append("flutter create -t package "); if (!string.IsNullOrEmpty(description)) { sb.Append($"--description {description.Quoted()} "); } sb.Append(name); FlutnetShell.RunCommand(sb.ToString(), workingDir, verbose); DartProject prj = new DartProject(new DirectoryInfo(Path.Combine(workingDir, name))); prj.Load(); return(prj); }
private static DartProject InitializePackage(string outputDir, string packageName, string packageDescription = null, bool verbose = false) { // Load or create Flutter package if it doesn't already exist string packageFolder = Path.Combine(outputDir, packageName); DartProject dartProject = new DartProject(new DirectoryInfo(packageFolder)); try { dartProject.Load(); if (verbose) { Console.WriteLine($"Flutter package \"{packageFolder}\" loaded successfully."); Console.WriteLine(); } } catch (DartProjectException ex) { switch (ex.Error) { case DartProjectError.PrjFolderNotExists: Console.Write($"Generating Flutter package \"{packageName}\" within directory {outputDir}... "); dartProject = FlutterTools.CreatePackage(outputDir, packageName, !string.IsNullOrEmpty(packageDescription) ? packageDescription : DefaultPackageDescription, verbose); Console.Write("Done."); Console.WriteLine(); break; case DartProjectError.LibFolderNotExists: case DartProjectError.PubspecNotExists: case DartProjectError.PubspecInvalidFormat: throw; } } return(dartProject); }