Beispiel #1
0
        public Task Run(Dictionary <string, string> cmdParams)
        {
            var s1           = new SolutionGenerator();
            var parsedParams = new CmdParams(cmdParams);

            var settings = new SolutionSettings
            {
                IsWeb         = parsedParams.IsWeb ?? true,
                IsApp         = parsedParams.IsApp ?? true,
                BgTeamVersion = parsedParams.BgTeamVersion ?? _appSettings.BgTeamVersion,
            };

            s1.Generate(parsedParams.CompanyName ?? _appSettings.NameCompany, parsedParams.ProjectName ?? _appSettings.NameProject, settings);

            return(Task.CompletedTask);
        }
Beispiel #2
0
        public void Generate(string @namespace, string name, SolutionSettings settings)
        {
            var folder = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "result");

            if (Directory.Exists(folder))
            {
                Directory.Delete(folder, true);
            }

            var nameSln = string.Join('.', new[] { @namespace, name }.Where(x => x != null));

            var projects = GenerateProjects(nameSln, folder, "src", settings);

            var file = ProjectsFile(projects);

            File.WriteAllText($"{folder}{Path.DirectorySeparatorChar}{nameSln}.sln", file);

            File.Copy("./Resourse/LICENSE", $"{folder}/LICENSE");
            File.Copy("./Resourse/README.md", $"{folder}/README.md");
            File.Copy("./Resourse/.gitignore", $"{folder}/.gitignore");
            File.WriteAllText($"{folder}/coverage.bat", File.ReadAllText("./Resourse/coverage.bat").Replace("$namespace$", @namespace));

            foreach (var item in Directory.EnumerateFiles("./Resourse/shared", "*", SearchOption.AllDirectories))
            {
                var dest = $"{folder}/{Path.GetRelativePath("./Resourse/", item)}";
                Directory.CreateDirectory(Path.GetDirectoryName(dest));
                File.Copy(item, dest);
            }

            foreach (var item in Directory.EnumerateFiles("./Resourse/lint", "*", SearchOption.AllDirectories))
            {
                var dest = $"{folder}/{Path.GetRelativePath("./Resourse/", item)}";
                Directory.CreateDirectory(Path.GetDirectoryName(dest));
                File.Copy(item, dest);
            }

            foreach (var item in Directory.EnumerateFiles("./Resourse/wiki-generator", "*", SearchOption.AllDirectories))
            {
                var dest = $"{folder}/{Path.GetRelativePath("./Resourse/", item)}";
                Directory.CreateDirectory(Path.GetDirectoryName(dest));
                File.Copy(item, dest);
            }
        }
Beispiel #3
0
        private IEnumerable <ProjectInfoItem> GenerateProjects(string name, string folder, string path, SolutionSettings settings)
        {
            var result   = new List <ProjectInfoItem>();
            var fullPath = $"{folder}{Path.DirectorySeparatorChar}{path}";

            var fapps   = new ProjectInfoItem("Apps", $"Apps", ProjectTypeEnum.Folder);
            var fmain   = new ProjectInfoItem("Main", $"Main", ProjectTypeEnum.Folder);
            var fshared = new ProjectInfoItem("Shared", $"Shared", ProjectTypeEnum.Folder);
            var fsrv    = new ProjectInfoItem("Services", $"Services", ProjectTypeEnum.Folder);
            var ftest   = new ProjectInfoItem("Tests", $"Tests", ProjectTypeEnum.Folder);

            var fconfigs = new ProjectInfoItem("configs", $"configs", ProjectTypeEnum.Folder)
            {
                Description =
                    @"ProjectSection(SolutionItems) = preProject
		shared\configs\connectionStrings.Development.json = shared\configs\connectionStrings.Development.json
		shared\configs\connectionStrings.Production.json = shared\configs\connectionStrings.Production.json
		shared\configs\serilog.Development.json = shared\configs\serilog.Development.json
		shared\configs\serilog.Production.json = shared\configs\serilog.Production.json
	EndProjectSection"    ,
            };

            var p1 = new ProjectGenerator($"{name}.Common", fullPath);

            p1.ProjectFile(new[] { ("bgTeam.Core", settings.BgTeamVersion) });